繁体   English   中英

Python3 中的纪元日期转换未按预期工作

[英]Epoch date conversion in Python3 not working as expected

我正在使用一个以“1619714600948”格式存储时间的应用程序,该格式有 13 个字符长。 我相信这是一个划时代的日期。 使用站点https://www.epochconverter.com/证实了这一点。 我可以输入 13 个字符的日期并退出:

在此处输入图像描述

当我尝试在 Python3 中创建一个纪元日期时,我最终得到 1619703857,它只有 10 个字符长。 当我尝试比较存储的日期与生成的日期时,这会导致问题。 为什么我没有得到预期的 13 个字符的纪元日期? 以下是我根据搜索 Stackoverflow 尝试过的一些事情

date_time2 = '04.29.2021' + " " + "13:44:17.000000"
pattern2 = '%m.%d.%Y %H:%M:%S.%f'

# get a time structure
tm = time.strptime(date_time2, pattern2)

# convert to gmt
gmt_epoch = int(calendar.timegm(tm))
print(gmt_epoch) #10 digit result 


date_string = calendar.timegm(time.strptime(str(date.today()), '%Y-%m-%d'))
print(date_string) #10 digit result 

尝试从中转换给我的日期有 5 位数的年份。

print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1619714600948))) #Bogus date of 53296-09-16 11:29:08
print(time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(1619714600948))) # Bogus date of 53296-09-16 18:29:08

是什么导致了这种差异,我该如何解决?

这是一个以毫秒为单位的 UNIX 时间(在 JavaScript 中很常见)。 除以 1000。

>>> import datetime
>>> datetime.datetime.fromtimestamp(1619714600948 / 1000.)
datetime.datetime(2021, 4, 29, 19, 43, 20, 948000)

同样,乘以 1000 得到毫秒时间戳:

>>> datetime.datetime.now().timestamp() * 1000
1619718337164.896

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM