目录

  • 1.引言
  • 2.时间戳与时间元组
  • 2.1时间戳
  • 2.2时间元组
  • 3.时间格式化
  • 3.1获取格式化的时间
  • 3.2自定义格式化
  • 4.附录
  • 4.1重要函数
  • 4.2参考
  • 1.引言

    Python 提供了一个 time模块来格式化时间,在python爬虫等应用中相当有用。

    time模块包含用于获取当前时间 、操作时间和日期、从字符串中读取日期、将日期格式化为字符串函数。日期可以表示为自从 1970 年 1 月 1 日午夜(历元)经过了秒的一个实数,也可以表示为包含9个整数的元组。

    2.时间戳与时间元组

    2.1时间戳

    import time
    ticks = time.time()
    print ("当前时间戳为:", ticks)
    
    当前时间戳为: 1645263377.554756
    

    上面这个案例演示了用time()获取当前的时间戳。

    2.2时间元组

    很多Python函数用一个元组装起来的9组数字处理时间:

    索引 属性 字段
    0 tm_year 如2000,2022等
    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 夏令时 0、1或-1
    N/A tm_zone 时区 时区名称的缩写
    N/A tm_gmtoff UTC东偏 以秒为单位

    秒的取值范围为0~61,考虑到闰一秒或闰两秒的情形。夏令时数字是布尔值,如果使用-1,表示未知的,那么使用mktime()可能得到正确的值。

    import time
    
    localtime = time.localtime()
    print ("本地时间为 :", localtime)
    
    本地时间为 : time.struct_time(tm_year=2022, tm_mon=2, tm_mday=19, tm_hour=17, tm_min=49, tm_sec=21, tm_wday=5, tm_yday=50, tm_isdst=0)
    

    上面这个案例演示了获取当前时间的时间元组。

    localtime()的缺省值为time()返回的当前时间戳。

    3.时间格式化

    3.1获取格式化的时间

    你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():

    import time
    
    localtime = time.asctime(time.localtime())
    print ("本地时间为 :", localtime)
    
    本地时间为 : Sat Feb 19 17:59:17 2022
    

    此处也可直接使用asctime(),因为asctime()的缺省值为localtime()返回的当前时间。

    亦可使用 ctime()ctime() 等价于 asctime(localtime())

    3.2自定义格式化

    我们可以使用 time 模块的 strftime 方法来格式化日期:time.strftime(format[, t]),第一个参数是格式化字符串,第二个参数是时间元组。

    import time
    
    print(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
    
    print(time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()))
    
    2022-02-19 18:28:08
    Sat Feb 19 18:28:08 2022
    

    上面的案例演示了将本地时间进行格式化输出。

    格式化符号 含意
    %a 本地化的缩写星期中每日的名称。
    %A 本地化的星期中每日的完整名称。
    %b 本地化的月缩写名称。
    %B 本地化的月完整名称。
    %c 本地化的适当日期和时间表示。
    %d 十进制数 [01,31] 表示的月中日。
    %H 十进制数 [00,23] 表示的小时(24小时制)。
    %I 十进制数 [01,12] 表示的小时(12小时制)。
    %j 十进制数 [001,366] 表示的年中日。
    %m 十进制数 [01,12] 表示的月。
    %M 十进制数 [00,59] 表示的分钟。
    %p 本地化的 AM 或 PM 。
    %S 十进制数 [00,61] 表示的秒。
    %U 十进制数 [00,53] 表示的一年中的周数(星期日作为一周的第一天)。 在第一个星期日之前的新年中的所有日子都被认为是在第 0 周。
    %w 十进制数 [0(星期日),6] 表示的周中日。
    %W 十进制数 [00,53] 表示的一年中的周数(星期一作为一周的第一天)。 在第一个星期一之前的新年中的所有日子被认为是在第 0 周。
    %x 本地化的适当日期表示。
    %X 本地化的适当时间表示。
    %y 十进制数 [00,99] 表示的没有世纪的年份。
    %Y 十进制数表示的带世纪的年份。
    %z 十进制带符号数[-1200,+1200]表示时区。
    %Z 时区名称。
    %% 字面的 ‘%’ 字符。

    4.附录

    4.1重要函数

    函数 描述
    asctime([t]) 将时间元组转换为字符串
    ctime([secs]) 将秒转换为字符串
    localtime([secs]) 将秒转换为当地时间的时间元组
    gmtime([secs]) 将秒转换为UTC时间的时间元组
    mktime(t) 将时间元组转换为当地时间
    sleep(secs) 休眠secs秒
    strftime(format[, t]) 将字符串转换为时间元组
    time() 当前时间,自纪元以来的秒

    4.2参考

    官方文档:https://docs.python.org/zh-cn/3/library/time.html

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python的时间模块

    发表评论