Python unix时间戳';使用datetime.utcfromtimestamp()的输出与其正确值不同

Python unix时间戳';使用datetime.utcfromtimestamp()的输出与其正确值不同,python,unix-timestamp,Python,Unix Timestamp,为了将unix时间戳字符串转换为可读的日期,我遵循了以下步骤 当I提供程序1607111882000时作为输入;它打印2020-12-04 19:58:02。但在以下站点()上,输出如下: 1607111882000 相当于: 05/06/52897@11:13(UTC) ISO 8601中的52897-05-06T23:13:20+00:00 2008年5月6日星期一23:13:20+0000在RFC 822103611232822 1997年5月6日星期一23:13:20 UTC,RFC

为了将unix时间戳字符串转换为可读的日期,我遵循了以下步骤


当I提供程序
1607111882000
时作为输入;它打印
2020-12-04 19:58:02
。但在以下站点()上,输出如下:

1607111882000
相当于:
05/06/52897@11:13(UTC)
ISO 8601中的52897-05-06T23:13:20+00:00
2008年5月6日星期一23:13:20+0000在RFC 822103611232822
1997年5月6日星期一23:13:20 UTC,RFC 2822
RFC 3339中的52897-05-06T23:13:20+00:00


为什么会有这种差异?哪一种是正确的?我应该怎么做才能获得与unixtimestamp.com网站相同的结果?

该网站可能正在使用
time.ctime
或等效功能:

>>> time.ctime(time.mktime(time.gmtime(1607111882000)))
'Mon May  6 23:13:20 52897'
至于使用这个词是否正确还有争议。日期可能不是100%准确

对于您的数字,我认为您使用的是毫秒而不是秒,因为在我的机器上,它给出了一个错误(
ValueError:year超出范围
),但除以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'
>>> 

你说得对。和unixtimestap(UT)错误。我认为秒和毫秒之间是错误的

允许访问,此网站支持Unix时间戳,单位为秒、毫秒、微秒和纳秒

示例:1607111882000 结果: 格式化毫秒(1/1000秒) 格林尼治时间2020年12月4日星期五19:58:02格林尼治时间+0000
相对3个月前

是否可以将结果转换为不同的时区,如伊斯坦布尔?@alper是。一个简单的技巧就是将以秒为单位的偏移量添加到时间戳中。要获得更好的解决方案,请检查;类似于
datetime.fromtimestamp(ts,timezone(timedelta(hours=timezone\u offset)))
的内容可以使用。
>>> 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'
>>>