• Python:日期和时间的处理模块及相关函数


    Python:日期和时间的处理模块及相关函数

     

    Python 提供 time 模块和 calendar 模块用于格式化日期和时间。

    一、时间戳

    在Python中,时间戳是以秒为单位的浮点小数,它是指格林威治时间自1970年1月1日(00:00:00 GMT)至当前时间的总秒数,也被称为Unix时间戳(Unix Timestamp)。时间戳唯一地标识某一刻的时间。

    例如,调用time模块下的函数time.time()来获取当前时间戳:

    # 导入time模块
    import time
     
    t=time.time()
    print("当前时间戳为:",t)

    运行结果:

    二、时间元组

    时间元组是一个包含9组数字处理时间的元组,其属性如下所示:

    序号 属性 说明
    0 tm_year 4位数年 2008
    1 tm_mon 1 到 12
    2 tm_mday 1 到 31
    3 tm_hour 小时 0 到 23
    4 tm_min 分钟 0 到 59
    5 tm_sec 秒钟 0 到 61 (60或61是闰秒)
    6 tm_wday 一周的第几日 0到6 (0是周一)
    7 tm_yday 一年的第几日 1 到 366(儒略历)
    8 tm_isdst 夏令时 -1, 0, 1, -1是决定是否为夏令时的旗帜

    可以将时间戳转换为时间元组:

    import time
     
    t=time.time()
    T=time.localtime(t)
    print("当前时间为 :",T)

    运行结果:

    三、时间日期格式化符号

    python中时间日期格式化符号如下所示:

    序号 符号 说明
    1 %y 两位数的年份表示(00-99)
    2 %Y 四位数的年份表示(000-9999)
    3 %m 月份(01-12)
    4 %d 月内中的一天(0-31)
    5 %H 24小时制小时数(0-23)
    6 %I 12小时制小时数(01-12)
    7 %M 分钟数(00=59)
    8 %S 秒(00-59)
    9 %a 本地简化星期名称
    10 %A 本地完整星期名称
    11 %b 本地简化的月份名称
    12 %B 本地完整的月份名称 
    13 %c 本地相应的日期表示和时间表示 
    14 %j 年内的一天(001-366) 
    15 %p 本地A.M.或P.M.的等价符 
    16 %U 一年中的星期数(00-53)星期天为星期的开始 
    17 %w 星期(0-6),星期天为星期的开始 
    18 %W 一年中的星期数(00-53)星期一为星期的开始 
    19 %x 本地相应的日期表示 
    20 %X 本地相应的时间表示 
    21 %Z 当前时区的名称 
    22 %% %号本身 

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    四、Time模块函数

    Time 模块包含以下内置函数:

    序号 函数 说明
    1 time.altzone 返回格林威治西部的夏令时地区的偏移秒数。如果该地区在格林威治东部会返回负值(如西欧,包括英国)。对夏令时启用地区才能使用。
    2 time.asctime([tupletime]) 接受时间元组并返回一个可读的形式为"Tue Dec 11 18:07:14 2008"(2008年12月11日 周二18时07分14秒)的24个字符的字符串。
    3 time.clock() 用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。
    4 time.ctime([secs]) 作用相当于asctime(localtime(secs)),未给参数相当于asctime()。
    5 time.gmtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回格林威治天文时间下的时间元组t。注:t.tm_isdst始终为0。
    6 time.localtime([secs]) 接收时间戳(1970纪元后经过的浮点秒数)并返回当地时间下的时间元组t(t.tm_isdst可取0或1,取决于当地当时是不是夏令时)。
    7 time.mktime(tupletime) 接受时间元组并返回时间戳(1970纪元后经过的浮点秒数)。
    8 time.sleep(secs) 推迟调用线程的运行,secs指秒数。
    9 time.strftime(fmt[,tupletime]) 接收以时间元组,并返回以可读字符串表示的当地时间,格式由fmt决定。
    10 time.strptime(str,fmt='%a %b %d %H:%M:%S %Y') 根据fmt的格式把一个时间字符串解析为时间元组。
    11 time.time( ) 返回当前时间的时间戳(1970纪元后经过的浮点秒数)。
    12 time.tzset() 根据环境变量TZ重新初始化时间相关设置。

    使用asctime()获取格式化的时间:

    import time
     
    t=time.time()
    T=time.localtime(t)
    Ta=time.asctime(T)
    print("当前时间为 :",Ta)

    运行结果:

     将格式化字符串转换为时间戳:

    import time
     
    a="Sat Nov 28 23:59:59 2019"
    b=time.strptime(a,"%a %b %d %H:%M:%S %Y")
    c=time.mktime(b)
    print(c) 

    运行结果:

    五、Calendar模块函数

    使用Calendar模块函数可以进行日历相关操作,例如打印某月的字符月历。

    默认每周第一天为星期一默认每周最后一天为星期日。更改日期设置需调用calendar.setfirstweekday()函数。

    Calendar模块包含以下内置函数:

    序号 函数 说明
    1 calendar.calendar(year,w=2,l=1,c=6) 返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
    2 calendar.firstweekday() 返回当前每周起始日期的设置。默认情况下,首次载入 calendar 模块时返回 0,即星期一。
    3 calendar.isleap(year) 是闰年返回 True,否则为 False。
    4 calendar.leapdays(y1,y2) 返回在Y1,Y2两年之间的闰年总数。
    5 calendar.month(year,month,w=2,l=1) 返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7* w+6。l是每星期的行数。
    6 calendar.monthcalendar(year,month) 返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。
    7 calendar.monthrange(year,month) 返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。
    8 calendar.prcal(year,w=2,l=1,c=6) 相当于 print calendar.calendar(year,w=2,l=1,c=6)。
    9 calendar.prmonth(year,month,w=2,l=1) 相当于 print calendar.month(year,month,w=2,l=1) 。
    10 calendar.prmonth(year,month,w=2,l=1) 设置每周的起始日期码。0(星期一)到6(星期日)。
    11 calendar.timegm(tupletime) 和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间戳(1970纪元后经过的浮点秒数)。
    12 calendar.weekday(year,month,day) 返回给定日期的日期码。0(星期一)到6(星期日)。月份为 1(一月) 到 12(12月)。

     打印今年的年历:

    import calendar
    
    y=calendar.calendar(2019)
    print(y)

    运行结果:

    打印当前月的月历:
    # 导入Calendar模块
    import calendar
     
    m=calendar.month(2019, 12)
    print(m)

    运行结果:

     
     用calendar.isleap()判断某一年是否为闰年:
    import calendar
    
    a=calendar.isleap(2000)
    b=calendar.isleap(2019)
    print(a)
    print(b)

    运行结果:

     
  • 相关阅读:
    左孩子右兄弟的字典树
    UVA 1401 Remember the Word
    HDOJ 4770 Lights Against Dudely
    UvaLA 3938 "Ray, Pass me the dishes!"
    UVA
    Codeforces 215A A.Sereja and Coat Rack
    Codeforces 215B B.Sereja and Suffixes
    HDU 4788 Hard Disk Drive
    HDU 2095 find your present (2)
    图的连通性问题—学习笔记
  • 原文地址:https://www.cnblogs.com/BIXIABUMO/p/12078543.html
Copyright © 2020-2023  润新知