此
import datetime
datetime.datetime.fromtimestamp(1501545600).isoformat()
应输出2017-08-01T00:00:00Z
或2017-08-01T00:00:00
但我得
2017-08-01T02:00:00
相反,可能是因为当地时区。
如何让.isoformat()
输入UTC时间,即2017-08-01T00:00:00
?
如果可能,我只想使用datetime
,而不使用其他第三方库,例如arrow
或dateutils
。
答案 0 :(得分:2)
使用utcfromtimestamp()
而不是fromtimestamp()
。来自docs:
返回与POSIX时间戳对应的UTC日期时间,tzinfo为无。
fromtimestamp()
中未指定tzinfo:
如果可选参数tz为None或未指定,则时间戳将转换为平台的本地日期和时间,并且返回的datetime对象是天真的。
这似乎不是你想要的。
答案 1 :(得分:1)
那不应该是datetime.utcfromtimestamp()
吗?
来自python docs:
类方法datetime.utcfromtimestamp(时间戳)¶ 返回与POSIX时间戳对应的UTC日期时间, 与tzinfo无。如果时间戳结束,这可能会引发ValueError 平台C gmtime()函数支持的值范围。 这种情况常见于1970年至2038年。