python日期与时间戳的各种转换示例
官方文档的示例中没有我们习惯的日期格式,查了很多博客转换日期和时间戳也都是大概的能得到结果的方式,常将datetime和time两个模块混用,个人觉得时间格式化不应该这么麻烦,还得用两个模块来支持?故而翻遍了源码,总结以下常用的几种日期和时间戳的转换方式。
以下主要有三个元素(时间字符串,格式,Unix时间戳),可将时间字符串转为另一种时间格式,或将时间字符串转为时间戳,或将时间戳转为时间字符串。
datetime和time两个模块,任意一个都能转换完成。
以下两个模块均列出示例:
#coding:utf-8
fromdatetimeimportdatetime
importtime
s='2019-06-0716:30:10'
f='%Y-%m-%d%H:%M:%S'
s2='FriJun716:30:102019'
f2='%c'
//时间字符串转时间戳,时间字串s和format对应
//int(t)转为整型
t=datetime.strptime(s,f).timestamp()#1559856210.0
t2=time.mktime(time.strptime(s,f))#1559856210.0
t3=time.mktime(time.strptime(s2,f2))#1559856210.0
t4=datetime.strptime(s2,f2).timestamp()#1559856210.0
t5=datetime.strptime('2019-06-07','%Y-%m-%d').timestamp()#1559836800.0
t6=datetime.strptime('06/07/19','%x').timestamp()#1559836800.0(06/07/2019,'%m/%d/%Y')
print(t,t2,t3,t4,t5,t6,"\n")
ut=1559896210
#时间戳转为时间字符串
d=datetime.fromtimestamp(ut)#2019-06-0716:30:10
d2=time.strftime(f,time.localtime(ut))#2019-06-0716:30:10
d3=time.ctime(ut)#FriJun716:30:102019
d4=datetime.fromtimestamp(ut).ctime()#FriJun716:30:102019
d5=time.strftime('%Y-%m-%d',time.localtime(ut))#2019-06-07(05:23:30,%H:%M:%S)
d6=datetime.fromtimestamp(ut).date()#2019-06-07
d7=datetime.fromtimestamp(ut).time()#16:30:10
d8=time.strftime('%x',time.localtime(ut))#06/07/19
d9=time.strftime('%X',time.localtime(ut))#16:30:10
dd=datetime.fromtimestamp(ut).strftime('%x')#06/07/19[(16:30:10,%X),(FriJun716:30:102019,%c)]
print(d,d2,d3,d4,d5,d6,d7,d8,d9,dd,"\n")
#格式转换
#将2019-06-0716:30:10转为FriJun716:30:102019
#(16:30:10,%X)
transf=datetime.strptime(s,f).strftime(f2)
#将FriJun716:30:102019转为2019-06-07
#(2019-06-0716:30:10,%Y-%m-%d%H:%M:%S)
transf2=datetime.strptime(s2,f2).strftime('%Y-%m-%d')
#将2019-06-0716:30:10转为FriJun716:30:102019
#(2019-06-0716:30:10,%Y-%m-%d%H:%M:%S)
transf3=time.strftime('%c',time.strptime(s,f))
#将FriJun716:30:102019转为2019-06-0716:30:10
transf4=time.strftime(f,time.strptime(s2,f2))
print(transf,transf2,transf3,transf4)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。