time模块

time模块

time模块在 python中共有三种表示方式:

  1. timestamp
  2. tuplestruct_time
  3. 格式化字符串

基本概念

  • 时间戳:表示从1970年1月1日00:00:00开始按秒计算的偏移量
  • UTC(Coordinated Universal Time):世界协调时,也称格林威治时间(GMT)
  • DST(Daylight Saving Time):即夏令时
  • struct_time为9元组:
    tm_year :年
    tm_mon :月(1-12)
    tm_mday :日(1-31)
    tm_hour :时(0-23)
    tm_min :分(0-59)
    tm_sec :秒(0-59)
    tm_wday :星期几(0-6,0表示周日)
    tm_yday :一年中的第几天(1-366)
    tm_isdst :是否是夏令时(默认为-1)

常用函数

  • time.sleep(secs):挂起调用线程secs秒。
  • time.clock(): 在第一次调用的时候, 返回程序运行的时间. 第二次之后返回与之前的间隔.
import time    
if __name__ == '__main__':    
    time.sleep(1)    
    print "clock1:%s" % time.clock()    
    time.sleep(1)    
    print "clock2:%s" % time.clock()    
    time.sleep(1)    
    print "clock3:%s" % time.clock()  

结果为:

clock1:3.7758161993087234e-07
clock2:1.000387021160429
clock3:2.0012350694787937
  • time.localtime([secs]):将一个时间戳转换为当前时区的struct_time,若secs参数未提供,则以当前时间为准。
>>>time.localtime()
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=25, tm_hour=15, tm_min=45, tm_sec=9, tm_wday=3, tm_yday=25, tm_isdst=0)
  • time.gtime([secs]):将一个时间戳转换为UTC时区(0时区)的struct_time
>>>time.gtime(time.time())
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=25, tm_hour=7, tm_min=46, tm_sec=8, tm_wday=3, tm_yday=25, tm_isdst=0)
  • time.time():返回当前时间的时间戳。
>>>time.time()
1516866368.0622864
  • time.mktime(t):将一个struct_time转化为时间戳。
>>>time.mktime(time.localtime())
1516866506.0
  • time.asctime([t]):把一个表示时间的tuple或者struct_time表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入
>>>time.asctime(time.localtime())
Thu Jan 25 15:49:57 2018
  • time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))
>>>time.ctime()
Thu Jan 25 15:49:57 2018
  • time.strftime(format[, t]):把一个代表时间的tuple或者struct_time转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,会抛出ValueError
>>>time.strftime("%Y-%m-%d %X", time.localtime())
2018-01-25 15:52:09
格式 含义 备注
%a 本地简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一月中的第几天(01-31)
%H 一天中的第几个小时(24小时制,00-23)
%I 一天中的第几个小时(12小时制,01-12)
%j 一年中的第几天(001,366)
%m 月份(01-12)
%p 本地am或者pm的相应符 需要与%I配合
%M 分钟数(00-59)
%S 秒(01-61) 闰年秒占2秒
%U 一年中的星期数,以星期日作为一个星期的开始
%w 一个星期中的第几天(0-6,0是星期天)
%W 一年中的星期数,以星期一作为一个星期的开始
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份
%Y 完整的年份
%Z 时区的名字
%% '%'字符

常用的有:
%y 两位数的年份 00 ~ 99.
%Y 四位数的年份 0000 ~ 9999
%m 月份 01 ~ 12.
%d day 01 ~ 31.
%H 时 00 ~ 23.
%I 时 01 ~ 12.
%M 分 00 ~ 59.
%S 秒 00 ~ 61.

  • time.strptime(string[, format]):把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。
>>>time.strptime('2018-01-25 15:54:06', '%Y-%m-%d %X')
time.struct_time(tm_year=2018, tm_mon=1, tm_mday=25, tm_hour=15, tm_min=54, tm_sec=6, tm_wday=3, tm_yday=25, tm_isdst=-1)

总结

可以得到时间戳的函数有:time.time(),time.mktime(),
可以得到struct_time的函数有:time.gtime(),time.localtime(),time.strptime()
可以得到格式化字符串的函数有:time.strftime(),time.ctime(),time.asctime()

各个函数的转化关系为:

参考资料:
http://blog.csdn.net/you_are_my_dream/article/details/61616465
https://docs.python.org/3/library/time.html
http://www.jb51.net/article/87721.htm

posted @ 2018-01-25 16:38  几度夏  Views(170)  Comments(0Edit  收藏  举报