Python日期时间赋予错误的值

时间:2019-05-08 00:50:25

标签: python date datetime

我正在运行此代码以从字符串获取时间戳,但是它为某些特定值提供了错误的值。

import datetime
import time
print(datetime.datetime.fromtimestamp(time.mktime(time.strptime("20170312025709", "%Y%m%d%H%M%S"))))

应该返回“ 2017-03-12 02:57:09” ##,但给出的是“ 2017-03-12 03:57:09”

可能是原因。我正在使用python3。

2 个答案:

答案 0 :(得分:0)

您的代码在我的计算机上运行正常(GMT + 8)

结果:

>>> import datetime
>>> import time
>>> print(datetime.datetime.fromtimestamp(time.mktime(time.strptime("20170312025709", "%Y%m%d%H%M%S"))))

2017-03-12 02:57:09

您可能要检查当地时间。或与夏令时有关。

答案 1 :(得分:0)

这是一个技巧问题。 daylight savings 2017

import datetime
import time

for hour in range(25):
    time_str = "20170312" + str(hour).zfill(2) + "5709"
    print(
        datetime.datetime.fromtimestamp(
            time.mktime(time.strptime(time_str, "%Y%m%d%H%M%S"))))

运行此命令,最后您将看到错误(默认系统时区中只有23小时)。