fromtimestamp()
已经返回本地时间,即,你不需要附加UTC偏移,如果fromtimestamp()
决定了它自动正确:
#!/usr/bin/env python
from datetime import datetime
local_time = datetime.fromtimestamp(1437323953822 * 1e-3)
# -> datetime.datetime(2015, 7, 19, 12, 39, 13, 822000)
fromtimestamp()
在某些情况下可能会失败,例如,如果本地时区在过去有不同的utc偏移量,并且fromtimestamp()
未在给定平台(特别是Windows)上使用历史时区数据库。在这种情况下,从UTC时间构建本地时间明确和给定的UTC偏移:
#!/usr/bin/env python
from datetime import datetime, timedelta
utc_time = datetime(1970, 1, 1) + timedelta(milliseconds=1437323953822)
utc_offset = timedelta(milliseconds=-14400000)
local_time = utc_time + utc_offset
# -> datetime.datetime(2015, 7, 19, 12, 39, 13, 822000)
Python always expects POSIX Epoch,因此它是确定硬编码。明确的公式可能更精确(无舍入误差),它可以接受更大范围的输入时间戳(范围取决于平台,可能比相应的范围窄)。
来源
2015-09-01 08:49:10
jfs
当你说实际时间你是什么意思?你在寻找UTC时间吗? –
我想要当地的实际时间。 – sfactor
你应该得到正确的实际时间吗?你是否得到UTC? –