• 【python中处理日期和时间一】_time及calendar相关函数


    【任务】处理日期和时间,转换日期格式
    【函数】time模块以及calendar()模块
    【扩展】其他相关模块和函数 其他处理日期和时间的模块还有:
    datetime模块;pytz模块;dateutil

    注意:本文仅介绍time及calendar模块,扩展另起。

    Python 程序能用很多处理日期和时间的方式,转换日期格式是一个常见的功能。其中time 、 calendar 是常用的处理格式化日期和时间的模块。

    一、时间(Time)模块

    Time 模块包含以下内置函数,有时间处理的,有转换时间格式的

    1 查看time模块的内置函数

    >>> import time
    >>> dir(time)
    ['_STRUCT_TM_ITEMS', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 
    'altzone', 'asctime', 'ctime', 'daylight', 'get_clock_info', 'gmtime', 'localtime', 
    'mktime', 'monotonic', 'monotonic_ns', 'perf_counter', 'perf_counter_ns', 'process_time', 
    'process_time_ns', 'sleep', 'strftime', 'strptime', 'struct_time', 'thread_time',
     'thread_time_ns', 'time', 'time_ns', 'timezone', 'tzname']
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    时间函数是使用一个元组装起来的9组数字进行时间处理的,即为struct_time元组。这种结构的属性如下:
    在这里插入图片描述

    2 Time函数的应用

    应用主要包括:时间戳、获取当前时间、获得格式化时间、格式化日期等。

    时间间隔是以秒为单位的浮点小数。

    2.1 部分函数说明

    (1)获取当前时间戳;

      time.time()
    
    • 1

    每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。

    (2)获取当前时间

    time.localtime(time.time())
    
    • 1

    从返回浮点数的时间戳方式向时间元组转换,将浮点数传递给如localtime之类的函数。

    (3)获取格式化的时间
    最简单的获取可读的时间模式的函数是asctime():

    time.asctime( time.localtime(time.time()) )
    
    • 1

    (4)格式化日期
    使用 time 模块的 strftime 方法来格式化日期;

    time.strftime(format[, t])
    
    • 1

    2.2 函数使用代码示例

    import time  # 引入time模块
    
    print("------获得当前时间戳-------")
    ticks = time.time() #时间戳单位最适于做日期运算
    print("当前时间戳为:", ticks)
    
    print("------获得当前时间-------")
    localtime = time.localtime(time.time())
    #localtime = time.ctime(ticks) #也可以获取当前时间
    print ("当前时间为 :", localtime) #struct_time元组表示时间
    
    
    print("------获得格式化时间-------")
    localtime = time.asctime( time.localtime(time.time()) )
    print ("当前时间为 :", localtime)
    
    
    print("------获得格式化日期-------")
    #根据fmt的格式把一个时间字符串解析为时间元组。
    # 格式化成2016-03-20 11:45:39形式
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    # 格式化成Sat Mar 28 22:24:24 2016形式
    print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
    # 将格式字符串转换为时间戳
    a = "Sat Mar 28 22:24:24 2016"
    print(time.mktime(time.strptime(a, "%a %b %d %H:%M:%S %Y"))) #接受时间元组并返回时间戳
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    运行结果如下:
    在这里插入图片描述

    2.3 补充:时间日期格式化符号

    在这里插入图片描述

    二、日历(Calendar)模块

    此模块的函数都是日历相关的。
    更改设置需调用calendar.setfirstweekday()函数。
    注意:星期一是默认的每周第一天,星期天是默认的最后一天。

    1 查看calendar模块的内置函数

    >>> import calendar
    >>> dir(calendar)
    ['APRIL', 'AUGUST', 'Calendar', 'DECEMBER', 'Day', 'EPOCH', 'FEBRUARY', 'FRIDAY',
     'HTMLCalendar', 'IllegalMonthError', 'IllegalWeekdayError', 'IntEnum', 'JANUARY',
      'JULY', 'JUNE', 'LocaleHTMLCalendar', 'LocaleTextCalendar', 'MARCH', 'MAY', 
      'MONDAY', 'Month', 'NOVEMBER', 'OCTOBER', 'SATURDAY', 'SEPTEMBER', 'SUNDAY', 
      'THURSDAY', 'TUESDAY', 'TextCalendar', 'WEDNESDAY', '_EPOCH_ORD', '__all__', 
      '__builtins__', '__cached__', '__doc__', '__file__', '__getattr__', '__loader__', 
      '__name__', '__package__', '__spec__', '_colwidth', '_get_default_locale', 
      '_locale', '_localized_day', '_localized_month', '_monthlen', '_nextmonth',
       '_prevmonth', '_spacing', 'c', 'calendar', 'datetime', 'day_abbr', 'day_name', 
       'different_locale', 'error', 'firstweekday', 'format', 'formatstring', 'global_enum',
        'isleap', 'leapdays', 'main', 'mdays', 'month', 'month_abbr', 'month_name',
         'monthcalendar', 'monthrange', 'prcal', 'prmonth', 'prweek', 'repeat',
          'setfirstweekday', 'sys', 'timegm', 'warnings', 'week', 'weekday', 'weekheader']
    >>>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2 Calendar模块函数的应用

    2.1 获取某月日历

    #返回一个多行字符串格式的year年month月日历,两行标题,一周一行。
    #每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
    calendar.month(year,month,w=2,l=1)
    
    • 1
    • 2
    • 3

    示例代码:

    import calendar  # 引入calendar模块
    
    print("------获取某年月历-------")
    cal = calendar.month(2024, 3)
    print("以下输出2024年3月份的日历:")
    print(cal)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    运行结果如下:
    在这里插入图片描述

    2.2 判断某年是否是闰年

    #是闰年返回 True,否则为 False。
    calendar.isleap(year)
    
    
    • 1
    • 2
    • 3

    示例代码如下:

    import calendar  # 引入calendar模块
    print("------判断是否是闰年-------")
    print("2024是闰年?",(calendar.isleap(2024)))
    print("2023是闰年?",calendar.isleap(2023))
    
    • 1
    • 2
    • 3
    • 4

    运行结果如下:
    在这里插入图片描述

    2.3 获取某年年历

    #返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 
    #每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
    calendar.calendar(year,w=2,l=1,c=6)
    
    
    • 1
    • 2
    • 3
    • 4

    示例代码如下:

    
    import calendar  # 引入calendar模块
    print("------获取某年年历-------")
    cal_year = calendar.calendar(2024,1,1,3,4)
    #cal_year = calendar.calendar(2024) #默认3个月一行
    print("以下输出2024年年历:")
    print(cal_year)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    运行结果如下:
    在这里插入图片描述

  • 相关阅读:
    持续交付-Pipeline入门
    人人都懂的HTML基础知识-HTML教程(1)
    trustZone学习
    spring中的bean生命周期
    模板引擎小结-使用
    基于java最短路径算法的简单实现
    WordPress页脚配置备案号
    CameraService启动-Android12
    POSIX信号量
    【管理运筹学】第 10 章 | 排队论(3,标准的 M/M/1 排队系统)
  • 原文地址:https://blog.csdn.net/weixin_44006573/article/details/136631720