转摘python中时间、日期、时间戳的转换
1.简介
在编写代码时,往往涉及时间、日期、时间戳的相互转换。
2.示例
# 引入模块 import time, datetime
2.1 str类型的日期转换为时间戳
1 # 字符类型的时间 2 tss1 = '2013-10-10 23:40:00' 3 # 转为时间数组 4 timeArray = time.strptime(tss1, "%Y-%m-%d %H:%M:%S") 5 print timeArray 6 # timeArray可以调用tm_year等 7 print timeArray.tm_year # 2013 8 # 转为时间戳 9 timeStamp = int(time.mktime(timeArray)) 10 print timeStamp # 1381419600 11 12 13 # 结果如下 14 time.struct_time(tm_year=2013, tm_mon=10, tm_mday=10, tm_hour=23, tm_min=40, tm_sec=0, tm_wday=3, tm_yday=283, tm_isdst=-1) 15 2013 16 1381419600
2.2 更改str类型日期的显示格式
1 tss2 = "2013-10-10 23:40:00" 2 # 转为数组 3 timeArray = time.strptime(tss2, "%Y-%m-%d %H:%M:%S") 4 # 转为其它显示格式 5 otherStyleTime = time.strftime("%Y/%m/%d %H:%M:%S", timeArray) 6 print otherStyleTime # 2013/10/10 23:40:00 7 8 tss3 = "2013/10/10 23:40:00" 9 timeArray = time.strptime(tss3, "%Y/%m/%d %H:%M:%S") 10 otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) 11 print otherStyleTime # 2013-10-10 23:40:00
2.3 时间戳转换为指定格式的日期
1 # 使用time 2 timeStamp = 1381419600 3 timeArray = time.localtime(timeStamp) 4 otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray) 5 print(otherStyleTime) # 2013--10--10 23:40:00 6 # 使用datetime 7 timeStamp = 1381419600 8 dateArray = datetime.datetime.fromtimestamp(timeStamp) 9 otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S") 10 print(otherStyleTime) # 2013--10--10 23:40:00 11 # 使用datetime,指定utc时间,相差8小时 12 timeStamp = 1381419600 13 dateArray = datetime.datetime.utcfromtimestamp(timeStamp) 14 otherStyleTime = dateArray.strftime("%Y--%m--%d %H:%M:%S") 15 print(otherStyleTime) # 2013--10--10 15:40:00
2.4 获取当前时间并且用指定格式显示
1 # time获取当前时间戳 2 now = int(time.time()) # 1533952277 3 timeArray = time.localtime(now) 4 print timeArray 5 otherStyleTime = time.strftime("%Y--%m--%d %H:%M:%S", timeArray) 6 print otherStyleTime 7 8 # 结果如下 9 time.struct_time(tm_year=2018, tm_mon=8, tm_mday=11, tm_hour=9, tm_min=51, tm_sec=17, tm_wday=5, tm_yday=223, tm_isdst=0) 10 2018--08--11 09:51:17 11 12 13 # datetime获取当前时间,数组格式 14 now = datetime.datetime.now() 15 print now 16 otherStyleTime = now.strftime("%Y--%m--%d %H:%M:%S") 17 print otherStyleTime 18 19 # 结果如下: 20 2018-08-11 09:51:17.362986 21 2018--08--11 09:51:17