python3-常用模块之time
import time
time模块主要是处理各种类型的时间
常用方法
1.time.sleep(secs)
(线程)推迟指定的时间运行,单位为秒。
2.time.time()
获取当前时间戳
时间戳
>>> time.time()
1568379488.885462
格式化时间
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2019-09-13 20:59:21'
结构化时间
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=13, tm_hour=20, tm_min=52, tm_sec=57, tm_wday=4, tm_yday=256, tm_isdst=0)
时间戳是计算机能够识别的时间;时间字符串是人能看懂的时间;元组则是用来操作时间
时间戳-->结构化时间
time.gmtime(时间戳) #UTC时间,与英国伦敦当地时间一致,参数空即为当前时间
time.localtime(时间戳) #当地时间。例如我们现在在北京执行这个方法:与UTC时间相差8小时,UTC时间+8小时 = 北京时间
>>> time.gmtime()
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=17, tm_hour=10, tm_min=41, tm_sec=17, tm_wday=1, tm_yday=260, tm_isdst=0)
>>> time.localtime()
time.struct_time(tm_year=2019, tm_mon=9, tm_mday=17, tm_hour=18, tm_min=41, tm_sec=29, tm_wday=1, tm_yday=260, tm_isdst=0)
结构化时间-->时间戳
time.mktime(结构化时间)
>>> t_m = time.localtime(1512341234)
>>> time.mktime(t_m)
1512341234.0
结构化时间-->字符串时间
time.strftime("格式定义","结构化时间") 结构化时间参数若不传,则显示当前时间
>>> time.strftime("%Y-%m-%d %H:%M:%S")
'2019-09-17 19:04:43'
>>> time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(1512341234))
'2017-12-04 06:47:14'
字符串时间-->结构化时间
time.strptime(时间字符串,字符串对应格式)
>>> time.strptime("2019-10-10","%Y-%m-%d")
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
>>> time.strptime("2019/10/10","%Y/%m/%d")
time.struct_time(tm_year=2019, tm_mon=10, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1)
结构化时间 --> %a %b %d %H:%M:%S %Y串
time.asctime(结构化时间) 如果不传参数,直接返回当前时间的格式化串
>>> time.asctime(time.localtime(1512341234))
'Mon Dec 4 06:47:14 2017'
>>> time.asctime()
'Tue Sep 17 19:14:43 2019'
时间戳 --> %a %b %d %H:%M:%S %Y串
time.ctime(时间戳) 如果不传参数,直接返回当前时间的格式化串
>>> time.ctime()
'Tue Sep 17 19:15:54 2019'
>>> time.ctime(1512341234)
'Mon Dec 4 06:47:14 2017'
习题 计算时间差
import time
res1 = time.strptime("2019-02-10 14:59:59","%Y-%m-%d %H:%M:%S")
res2 = time.strptime("2019-02-09 15:12:12","%Y-%m-%d %H:%M:%S")
time1 = time.mktime(res1)
time2 = time.mktime(res2)
res = time.gmtime(time1 - time2)
print('相差%d年%d月%d天%d小时%d分钟%d秒'%(res.tm_year-1970,res.tm_mon-1,res.tm_mday-1,res.tm_hour,res.tm_min,res.tm_sec))