【问题标题】:Pandas to_datetime unexpected UTC return熊猫 to_datetime 意外的 UTC 返回
【发布时间】:2017-04-03 13:17:22
【问题描述】:

我正在尝试使用 pandas.to_datetime 函数将时间索引设置为 pandas DataFrame,但转换秒时的结果日期时间是 UTC,虽然没有请求:

import pandas
import datetime,time

datetime1 = '2017-03-30T12-00-00'
d = datetime.datetime.strptime(datetime1, "%Y-%m-%dT%H-%M-%S")
s = time.mktime(d.timetuple())

print pandas.to_datetime(datetime1, format = "%Y-%m-%dT%H-%M-%S")
print pandas.to_datetime(s, unit='s')

得到两个不同的结果,虽然 pandas.to_datetime 的 utc 选项在这两种情况下都没有使用。

有什么想法吗?

【问题讨论】:

    标签: python pandas utc string-to-datetime


    【解决方案1】:

    time.mktime()默认不返回UTC,time.mktime()docs

    它的参数是 struct_time 或完整的 9 元组 [...],它以本地时间表示时间,而不是 UTC。

    【讨论】:

    • 是的,time.mktime() 返回当地时间。但是一旦进入pandas.to_datetime,pandas 的结果就是 UTC。
    • 我的错误在于mktime理解,我应该使用calendar.timegm:s = calendar.timegm(d.timetuple())
    猜你喜欢
    • 1970-01-01
    • 2019-09-05
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    • 2015-06-14
    • 1970-01-01
    • 2018-11-12
    • 2020-11-17
    相关资源
    最近更新 更多