时间的表示方法 分为3种
1.格式化的字符串格式
如 2017-11-30 16:02:30
2. 时间戳
时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量
1 >>> import time 2 >>> time.time() 3 1512029179.848 # 时间戳
3. 元组的方式表达
总共有9个值
1 >>> import time 2 >>> time.localtime() 3 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=16, tm_min=9, tm_sec=37, tm_wday=3, tm_yday=334, tm_isdst=0)
索引(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.sleep() 停顿多长时间,参数为秒
3. time.gmtime() 没有参数的时候,获取当前 UTC时间的 元组形式 的时间表达方法,
参数为时间戳的时候,获取 时间戳的UTC时间的 元组形式的时间
1 >>> import time 2 >>> time.gmtime() # 没参数。获取的是 当前UTC时间的 元组形式 3 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=8, tm_min=32, tm_sec=36, tm_wday=3, tm_yday=334, tm_isdst=0) 4 >>> time.gmtime(1512029179.848) #参数为时间戳 5 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=8, tm_min=6, tm_sec=19, tm_wday=3, tm_yday=334, tm_isdst=0)
4.time.localtime()
当前 本地时间的 元组形式的表达
可以传入参数,参数为时间戳, 返回的是 时间戳表示的 本地时间
1 >>> time.localtime() 2 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=16, tm_min=38, tm_sec=55, tm_wday=3, tm_yday=334, tm_isdst=0)
gmtime 和 localtime 都是将 时间戳格式转换成 元组形式,区别是 gmtime转化成 UTC时间, localtime 转化成本地时间也就是UTC + 8小时.
localtime 值的获取方法
1 >>> t = time.localtime() 2 >>> t.tm_hour 3 16 4 >>> t.tm_min 5 47
5. time.mktime() 将元组的时间 转换成 时间戳的格式
1 >>> import time 2 >>> t = time.localtime() 3 >>> time.mktime(t) 4 1512032229.0
6.strftime() 将一个元组时间 转换成 格式化时间
参数格式 strftime(‘格式’, 元组形式的时间)
将一个元组时间 转换成 格式化时间
1 >>> import time 2 >>> t = time.localtime() 3 >>> t 4 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=17, tm_min=2, tm_sec=20, tm_wday=3, tm_yday=334, tm_isdst=0) 5 >>> time.strftime(%Y - %m - %d , t) # 注意加引号 6 SyntaxError: invalid syntax 7 >>> time.strftime('%Y - %m - %d ', t) 8 '2017 - 11 - 30 ' 9 >>> time.strftime('%Y - %m - %d %H : %M : %S', t) 10 '2017 - 11 - 30 17 : 02 : 20' 11 >>> time.strftime(' %H : %M : %S %Y - %m - %d ', t) 12 ' 17 : 02 : 20 2017 - 11 - 30 '
7. time.strptime() 将一个格式化字符串的时间 转换成 一个元组的形式
1 >>> import time 2 >>> time.localtime() 3 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=17, tm_min=23, tm_sec=9, tm_wday=3, tm_yday=334, tm_isdst=0) 4 >>> time.strftime('%Y - %m - %d %H : %M : %S',time.localtime()) 5 '2017 - 11 - 30 17 : 24 : 05' 6 >>> time.strptime('2017 - 11 - 30 17 : 24 : 05' , '%Y - %m - %d %H : %M : %S') # 传入的字符串时间 的顺序,必须和后面格式的时间 一一对应 7 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=30, tm_hour=17, tm_min=24, tm_sec=5, tm_wday=3, tm_yday=334, tm_isdst=-1)
二 time.asctime()
time.asctime([t]):把一个表示时间的元组表示为这种形式:'Sun Jun 20 23:21:05 1993'。如果没有参数,将会将time.localtime()作为参数传入。
time.ctime([secs]):把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。