我有一个时间戳,例如 1474398821633L,我认为它是 utc 格式的。我想将它与 datetime.datetime.now() 进行比较以验证它是否已过期。
我正在使用 python 2.7
from datetime import datetime
timestamp = 1474398821633L
now = datetime.now()
if datetime.utcfromtimestamp(timestamp) < now:
print "timestamp expired"
然而,当我尝试从时间戳创建日期时间对象时遇到此错误:ValueError: timestamp out of range for platform localtime()/gmtime() function
我能做什么?
请您参考如下方法:
它看起来您的时间戳以毫秒为单位。 Python 使用以秒为单位的时间戳:
>>> datetime.datetime.utcfromtimestamp(1474398821.633)
datetime.datetime(2016, 9, 20, 19, 13, 41, 633000)
换句话说,您可能需要将时间戳除以 1000。 才能使其处于正确的范围内。
此外,您可能希望比较 datetime.utcnow() 而不是 datetime.now() 以确保您正确处理时区:- ).
