计算纪元时间,其中秒的差异为零,得到5:30多的时间

时间:2016-04-28 09:35:50

标签: python-2.7 datetime epoch

time_orign_epoch应该是1970-01-01 00:00:00,为什么我要再来5:30?

time_origin_epoch = datetime.datetime.fromtimestamp(0)
print time_origin_epoch
1970-01-01 05:30:00

2 个答案:

答案 0 :(得分:2)

因为你住在印度!

我是怎么知道的?

嗯,时间戳为0表示1970-01-01 00:00:00 UTC。由于您的输出显示为05:30:00,因此您的时区为UTC + 05:30。印度是世界上为数不多的几个时区之一,时区偏移不是一个整数小时。

使用fromtimestamp()在Python中构建日期时间时,默认情况下使用本地时区进行转换。这相当于调用经典C函数localtime()而不是gmtime()

答案 1 :(得分:0)

运行代码会给我一个比它应该落后五个小时的结果。这与我在美国东部时间并且比UTC晚了五个小时的事实是一致的。 如果你只是想确认正确的输出,那么检查你的时区,我猜你是在东亚的某个地方。但是,如果您需要程序本身产生的零值,请尝试从程序中将时区重置为UTC,然后再次运行该代码段。

来自this回答:

如果您使用的是Unix,则可以使用time.tzset来更改进程的本地时区:

import os
import time
os.environ['TZ'] = tz
time.tzset()

然后,您可以使用

将日期时间字符串转换为NumPy datetime64' s
def using_tzset(date_strings, tz):
    os.environ['TZ'] = tz
    time.tzset()
    return np.array(date_strings, dtype='datetime64[ns]')