Python中time和datetime模块的简单用法

python中与时间相关的一个模块是time模块,datetime模块可以看为是time模块的高级封装。

time模块中经常用到的有一下几个方法:

  1. time()

    用来获取时间戳,表示的结果为从1970年1月1日开始计算到现在时间之间的秒数。如:
    time.time()
    输出:1507727656.9446979  #今天是2017/10/11 21:15:00
  2. localtime()

    获取当前时间信息。包含年月日时分秒等等。返回结果以元组的形式返回。如:
    time.localtime()
    输出:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=11, tm_hour=21, tm_min=14, tm_sec=16, tm_wday=2, tm_yday=284, tm_isdst=0)
    将时间戳转换为日期格式:
    time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(1521879629))  #当地时间
    time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1521879629))  #标准时间
  3. strftime()

    它可以将localtime()中获取的时间元组转换为自定义的日期时间格式进行。如:
    time.strftime("%Y-%m-%d %H:%M:%S",struct_local_time)
    输出:2017-10-10/11/17 21:14:16
    其中%Y-%m-%D %H:%M:%S即为自定义的日期时间格式,字母有一下的含义:

    %a     显示简化星期名称
    %A     显示完整星期名称
    %b     显示简化月份名称
    %B     显示完整月份名称
    %c     本地相应的日期和时间表示
    %d     显示当月第几天
    %H     按24小时制显示小时
    %I      按12小时制显示小时
    %j      显示当年第几天
    %m    显示月份
    %M    显示分钟数)
    %p     本地am或者pm的相应符
    %S     显示秒数)
    %U     一年中的星期数
    %w     显示在星期中的第几天,默认从0开始表示周一
    %W     和%U基本相同
    %x     本地相应日期
    %X     本地相应时间
    %y     去掉世纪的年份(00 - 99)
    %Y     完整的年份
    %Z     时区的名字(如果不存在为空字符)
    %%    ‘%’字符

  4. gmtime()

    可以将时间秒转换为日期时间,此时日期和时间表示的是标准时间,北京时间为标准时间加上8个小时。不传入参数代表当前时间即转换time()函数的结果。如:
    time.gmtime()
    输出:time.struct_time(tm_year=2017, tm_mon=10, tm_mday=11, tm_hour=13, tm_min=34, tm_sec=13, tm_wday=2, tm_yday=284, tm_isdst=0)
    当传入参数时。如:
    time.gmtime(1403127843)
    输出:time.struct_time(tm_year=2014, tm_mon=6, tm_mday=18, tm_hour=21, tm_min=44, tm_sec=3, tm_wday=2, tm_yday=169, tm_isdst=0)
  5. asctime()和ctime()

    两个都会返回固定格式的当前日期和时间(Wed Oct 11 21:35:28 2017),但两个接收的参数不同。
    asctime()接收的是元组格式的日期时间,而ctime()接收的是秒。然后都返回本地的格式化后的日期时间。如:
    ctime(1403127843)
    输出:Thu Jun 19 05:44:03 2014
    asctime(time.localtime())
    输出:Wed Oct 11 21:42:56 2017
    当两个方法都不传入参数,返回的都为当前日期和时间:如:

    Wed Oct 11 21:45:42 2017
    Wed Oct 11 21:45:42 2017

  6. mktime()

    将元组形式的日期时间转换为秒的形式。必须有参数!如:
    mktime(time.gmtime())    #time.gmtime()返回的为元组形式的标准时间。
    输出:1507700832.0

关于datetime模块,使用的时候建议仅使用当中的now()方法。如:

  1. datetime.datetime.now()

    输出:2017-10-13 10:12:17.174169
  2. timedelta()

    timedelta 方法必须与其他方法配合使用,不能单独存在。参数有不同的形式。如:
    datetime.datetime.now()+datetime.timedelta(3)
    输出:2017-10-16 10:12:17.174169    #表示今天向后推3天,也可以为负数,表示向前推几天
  3. 此外还有另外的参数形式。如:

    datetime.datetime.now()+datetime.timedelta(minutes=20)
    输出:2017-10-13 10:32:17.174169    #表示现在的20分钟后
    datetime.datetime.now()+datetime.timedelta(minutes=20,hours=2)
    输出:2017-10-13 12:32:17.174669    #小时和分钟向后推
原文地址:https://www.cnblogs.com/xsmile/p/7653081.html