使用 datetime.utcfromtimestamp() 的 unix 时间戳输出与其正确值不同
unix timestamp's output using datetime.utcfromtimestamp() differs from its correct value
我已按照 following answer 将 unix 时间戳字符串转换为可读日期。
from datetime import datetime ts = int("1284101485")
print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
作为我提供时的输入1607111882000
;它打印 2020-12-04 19:58:02
。但是在下面的站点(https://www.unixtimestamp.com/index.php),输出如下:
1607111882000
Is equivalent to:
05/06/52897 @ 11:13pm (UTC)
52897-05-06T23:13:20+00:00 in ISO 8601
Mon, 06 May 52897 23:13:20 +0000 in RFC 822, 1036, 1123, 2822
Monday, 06-May-97 23:13:20 UTC in RFC 2822
52897-05-06T23:13:20+00:00 in RFC 3339
为什么会有这种差异,哪个是正确的?我应该怎么做才能获得与 unixtimestamp.com 网站相同的结果?
该网站可能正在使用 time.ctime
或等效功能:
>>> time.ctime(time.mktime(time.gmtime(1607111882000)))
'Mon May 6 23:13:20 52897'
至于是否正确使用值得商榷。日期可能不是 100% 准确。
对于您的数字,我认为您输入的是毫秒而不是秒,因为在我的机器上它给出了错误 (ValueError: year is out of range
),但除以 1000 给出了两个函数的正确日期:
>>> ts = 1607111882
>>> print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
2020-12-04 19:58:02
>>> time.ctime(time.mktime(time.gmtime(ts)))
'Fri Dec 4 19:58:02 2020'
>>>
你说得对。而unixtimestamp(UT)错误。我认为 UT 错误在秒和毫秒之间。
允许访问https://unixtime.org/,本站支持Unix时间戳,单位为秒、毫秒、微秒和纳秒。
示例:1607111882000
结果:
格式 毫秒(1/1,000 秒)
GMT 2020 年 12 月 4 日星期五 19:58:02 GMT+0000
亲戚 3 个月前
我已按照 following answer 将 unix 时间戳字符串转换为可读日期。
from datetime import datetime ts = int("1284101485") print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
作为我提供时的输入1607111882000
;它打印 2020-12-04 19:58:02
。但是在下面的站点(https://www.unixtimestamp.com/index.php),输出如下:
1607111882000
Is equivalent to:
05/06/52897 @ 11:13pm (UTC)
52897-05-06T23:13:20+00:00 in ISO 8601
Mon, 06 May 52897 23:13:20 +0000 in RFC 822, 1036, 1123, 2822
Monday, 06-May-97 23:13:20 UTC in RFC 2822
52897-05-06T23:13:20+00:00 in RFC 3339
为什么会有这种差异,哪个是正确的?我应该怎么做才能获得与 unixtimestamp.com 网站相同的结果?
该网站可能正在使用 time.ctime
或等效功能:
>>> time.ctime(time.mktime(time.gmtime(1607111882000)))
'Mon May 6 23:13:20 52897'
至于是否正确使用值得商榷。日期可能不是 100% 准确。
对于您的数字,我认为您输入的是毫秒而不是秒,因为在我的机器上它给出了错误 (ValueError: year is out of range
),但除以 1000 给出了两个函数的正确日期:
>>> ts = 1607111882
>>> print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
2020-12-04 19:58:02
>>> time.ctime(time.mktime(time.gmtime(ts)))
'Fri Dec 4 19:58:02 2020'
>>>
你说得对。而unixtimestamp(UT)错误。我认为 UT 错误在秒和毫秒之间。
允许访问https://unixtime.org/,本站支持Unix时间戳,单位为秒、毫秒、微秒和纳秒。
示例:1607111882000 结果: 格式 毫秒(1/1,000 秒) GMT 2020 年 12 月 4 日星期五 19:58:02 GMT+0000 亲戚 3 个月前