python如何使用time模块处理时间?
1.时间类型划分
import time
1.2 time模块
time模块那么多方法,如何区分?
根据时间格式划分为:
a)时间戳
b)struct_time格式(时间格式,可以轻松获取年月日,时分秒各个值)
c)字符串时间(可读性好)
下面逐一详解(以下操作在jupyter,python3.x版本操作)
2 时间戳处理跟着感觉走:
2.1 获取时间戳什么是时间戳?就是一个大的浮点数,计算机用来记录时间用的,大概好像是1970年的某年月开始的。
获取时间戳正确姿势:
import timet=time.time()t
结果:
1582968461.3394606
获取时间戳,对我们来说意义不大,怎么获取对应的年与日时分秒?
2.2 时间戳转struct_time:struct_time是一个对象,类似元组,主要包含时间信息
有了这个结构,获取时间太easy,如何获取?
方法:time.localtime([sec])#获取当前时间st = time.localtime()#获取年print(st.tm_year)#获取小时print(st.tm_hour)#时间戳转struct_timet=1582968461print(time.localtime(t))
输出结果:
202017time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=17, tm_min=27, tm_sec=41, tm_wday=5, tm_yday=60, tm_isdst=0)
2.3 时间戳转时间字符串
time.ctime(seconds):将时间戳转成可读字符串
#获取当前时间print(time.ctime())#时间戳转字符串t=1582968461print(time.ctime(t))
输出结果:
Sat Feb 29 17:46:18 2020Sat Feb 29 17:27:41 2020
3 struct_time处理
主要下面几个操作:
先来看前两个操作:
#获取当前时间st = time.localtime()#struct_time转时间戳print(time.mktime(st))#struct_time转字符串print(time.asctime(st))
输出结果:
1582974399.0Sat Feb 29 19:06:39 2020
如何将struct_time转自定义格式字符串?
time.strftime(format[, tuple]):format为指定格式,tuple为struct_time对象
format格式可以通过help(time.strftime)查看,主要格式如下:
例子:
st = time.localtime()#年-月-日print(time.strftime('%Y-%m-%d', st))#时-分-秒print(time.strftime('%H-%M-%S',st))#年-月-日 时:分:秒print(time.strftime('%Y-%m-%d %H:%M:%S', st))
结果:
2020-02-2919-19-312020-02-29 19:19:31
字符换时间转时间
比如将"2020-02-29 19:19:31"转成struct_time或者时间戳如何操作?
strptime(string, format),与strftime相反,具体操作:
s = '2020-02-29 19:19:31'st = time.strptime(s,'%Y-%m-%d %H:%M:%S')print(st)
输出结果:
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=19, tm_sec=31, tm_wday=5, tm_yday=60, tm_isdst=-1)
以上就是时间转换主要方法。
总结:时间戳转字符串流程#获取当前时间错t = time.time()print(t)#转成struct_timest = time.localtime(t)print(st)#st转自定义格式字符串s = time.strftime('%Y-%m-%d %H:%M:%S', st)print(s)
输出结果:
1582975571.0656374time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=0)2020-02-29 19:26:11
字符串转时间戳
s = '2020-02-29 19:26:11'#字符串转struct_timest = time.strptime(s,'%Y-%m-%d %H:%M:%S')print(st)#struct_time转时间戳t = time.mktime(st)print(t)
结果:
time.struct_time(tm_year=2020, tm_mon=2, tm_mday=29, tm_hour=19, tm_min=26, tm_sec=11, tm_wday=5, tm_yday=60, tm_isdst=-1)1582975571.0
记住这几个操作,能够满足大部分需求。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。