【问题标题】:Converting Unix timestamp to date time - different results for JS and Python将 Unix 时间戳转换为日期时间 - JS 和 Python 的不同结果
【发布时间】:2021-11-10 16:12:44
【问题描述】:

我有 sqlite 日志文件,其中日期在时间戳中。

通过下面的函数用JS转换得到正确的结果

var unixTsToDate = function (UNIX_Timestamp){
var date = new Date(UNIX_Timestamp / 1000);
return date;
};

unixTsToDate (1615370972685000) = Wed Mar 10 2021 11:09:32 GMT+0100

现在我正在尝试对 Python 3.9 进行同样的操作,但它因错误而中止

import datetime
print(datetime.datetime.utcfromtimestamp(1615370972685000))

result:
print(datetime.datetime.utcfromtimestamp(1615370972685000))
OSError: [Errno 22] Invalid argument

这个数字对于函数来说似乎太大了。尝试使用 /1000(在互联网上发现可能是不同的时间戳,有毫秒和没有),没有结果

在这种情况下,Python 有什么解决方案?

【问题讨论】:

  • Python 使用秒,而进入 JS 函数的是毫秒,因此在 Python 中也除以 1000。关于在 Python 中将 Unix 时间转换为 UTC,另请注意 this

标签: javascript python datetime timestamp


【解决方案1】:

您的时间戳值具有微秒分辨率。

51 年(自纪元以来)* 365 * 24 * 3600 将产生大约 16 亿秒。您的值还有 6 位数字。

所以在 Python 中除以 1000000 而不是 1000。

【讨论】:

    猜你喜欢
    • 2011-08-23
    • 1970-01-01
    • 2020-10-19
    • 1970-01-01
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 2016-06-07
    相关资源
    最近更新 更多