1

我正在测试这个 RESTFul whois API。

如果日期是 unix 时间戳格式,我会感到困惑。但我不这么认为,因为:

print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000")))

给我 :

 ValueError: timestamp out of range for platform time_t

日期可以在这里找到

updated: 1340578800000 

在这个文件中:

http://www.restfulwhois.com/example

我在网站上找不到任何电子邮件或支持,这就是我在这里问的原因。你怎么看 ?

4

4 回答 4

2

这些是自纪元以来的毫秒数:

>>> print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000")/1000))
2012-06-25 03:00:00

大多数情况下,您会从 获得毫秒数JavaScript,由 . 返回getTime

并注意时区和本地时间差异,正如本主题中同时但不同的答案所示。对于 UTC 日期,请gmtime使用localtime

>>> print time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(int("1340578800000")/1000))
2012-06-24 23:00:00
于 2013-11-13T19:08:20.473 回答
1

您拥有的值是自纪元以来的毫秒数,并time.localtime期望秒数。

[from gmtime()]:将自纪元以来以秒表示的时间转换为...

请注意,虽然您恢复的字符串在这两者之间没有区别,但更普遍适用的解决方案可能是进行浮点除法以保留毫秒。

>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000") / 1000))
'2012-06-24 18:00:00'
>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000") / 1000.))
'2012-06-24 18:00:00'
于 2013-11-13T19:17:23.487 回答
1

Pythontime.localtime期望时间戳以秒为单位,您以毫秒为单位传递它,因此您必须除以 1000 才能以秒为单位。

将您的代码更改为:

>>> print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000")/1000))
 '2012-06-24 20:00:00'
于 2013-11-13T19:08:40.737 回答
1

它以毫秒为单位,而不是秒。在格式化之前将其除以 1000:

>>> time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(int("1340578800000") / 1000))
'2012-06-24 20:00:00'
于 2013-11-13T19:08:45.537 回答