time

  • 在python中,通常有这几种方式来表示时间
    • 1.时间戳
    • 2.格式化的时间字符串
    • 3.元组(struct_time)共九个元素。由于python的time模块实现主要调用C库,所以各个平台可能有所不同
  • 几个定义
    • UTC:世界标准时间。在中国,为UTC+8。
    • DST即夏令时
    • 时间戳(timestamp)的方式:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型
    • 元组(struct_time)方式:struct_time元组共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。下面列出这种方式元组中的几个元素:
    • 索引(Index)    属性(Attribute)    值(Values)
      0                  tm_year(年)        比如2011 
      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
      6                  tm_wday(weekday)    0 - 6(0表示周日)
      7                  tm_yday(一年中的第几天) 1 - 366
      8                  tm_isdst(是否是夏令时)  默认为-1
  • time模块的方法
    • (1)time.time():返回当前时间的时间戳
    • (2)time.localtime([secs]):将一个时间戳转换为当前时区的struct_time。secs参数未提供,则以当前时间为准
    • (3)time.gmtime([secs]):和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。
    • 1 print(time.time())#当前时间戳  1512992826.3101041
      2 print(time.localtime())#当前时间
      3 #time.struct_time(tm_year=2017, tm_mon=12, tm_mday=11, tm_hour=19, tm_min=47, tm_sec=6, tm_wday=0, tm_yday=345, tm_isdst=0)
      4 print(time.localtime(1000))
      5 #time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=16, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)
      6 print(time.gmtime())#0时区时间
      7 #time.struct_time(tm_year=2017, tm_mon=12, tm_mday=11, tm_hour=11, tm_min=47, tm_sec=6, tm_wday=0, tm_yday=345, tm_isdst=0)
      8 print(time.gmtime(1000))
      9 #time.struct_time(tm_year=1970, tm_mon=1, tm_mday=1, tm_hour=0, tm_min=16, tm_sec=40, tm_wday=3, tm_yday=1, tm_isdst=0)
      1-3示例
    • (4)time.mktime(t):将一个struct_time转化为时间戳。
    • (5)time.sleep(secs):线程推迟指定的时间运行。单位为秒
    • (6)time.asctime([t]):把一个表示时间的元组或者struct_time表示为这种形式:'Sun Oct 1 12:04:38 2017'。如果没有参数,将会将time.localtime()作为参数传入。
    • (7)time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当于time.asctime(time.localtime(secs))。
    • 1 a = time.localtime()
      2 print(time.mktime(a))#把时间转换为时间戳,1512993116.0
      3 time.sleep(0.5)#延时
      4 print(time.asctime(a))#把时间转换为Mon Dec 11 19:51:56 2017格式
      5 print(time.asctime())#默认为转换当前时间Mon Dec 11 19:51:56 2017
      6 print(time.ctime(1511872))  #把指定时间戳转换为上面的格式Sun Jan 18 19:57:52 1970
      7 print(time.ctime())#默认把当前的时间戳转换为上面的格式Mon Dec 11 19:51:56 2017
      4-7示例
    • (8)time.strftime(format[, t]):把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。
    • (9)time.strptime()
      • 举例:time.strptime('2017-10-3 17:54',"%Y-%m-%d %H:%M") #输出 time.struct_time(tm_year=2017, tm_mon=10, tm_mday=3, tm_hour=17, tm_min=54, tm_sec=0, tm_wday=1, tm_yday=276, tm_isdst=-1)
    • 1 b = time.strftime('%Y-%m-%d %H:%M:%S')#把时间转换为指定格式输出,可指定时间,默认为当前时间
      2 print(b)# 2017-12-11 19:54:58
      3 print(type(b))#<class 'str'>
      4 print(time.strptime(b,'%Y-%m-%d %H:%M:%S'))#把指定格式的时间转换为时间对象,可再通过mktime转换为时间戳
      5 #time.struct_time(tm_year=2017, tm_mon=12, tm_mday=11, tm_hour=19, tm_min=54, tm_sec=58, tm_wday=0, tm_yday=345, tm_isdst=-1)
      8-9示例
原文地址:https://www.cnblogs.com/GraceZ/p/8022446.html