熊猫to_datetime产生不可能的时间

时间:2016-03-21 19:04:46

标签: python datetime pandas timezone

我使用pandas将字符串转换为时间戳。我有一个字符串,如下'2016-03-12 18:09:19 PST'

如果我执行以下操作:

pd.to_datetime('2016-03-12 18:09:19 PST')

我明白了:

Timestamp('2016-03-13 02:09:19')

我不确定为什么会这样。与以下行为形成对比:

pd.to_datetime('2016-03-12 18:09:19')

返回:

Timestamp('2016-03-12 18:09:19')

请注意,时间Timestamp('2016-03-13 02:09:19')实际上并不存在于美国/太平洋时间。如果您尝试pd.to_datetime('2016-03-12 18:09:19 PST').tz_localize('US/Pacific'),您将获得NonExistentTimeError

为什么引入" PST"在弦的末尾诱导减法16小时? to_datetime如何引入不可能的日期?

1 个答案:

答案 0 :(得分:0)

Pandas正在将您的字符串转换为UTC时间。当省略“PST”时,问题不存在,因为pandas默认假设您提供的时间戳已经是UTC,因此它没有进行转换。

您可以使用utc=False关键字参数停止转换为UTC。

pd.to_datetime('2016-03-12 18:09:19 PST', utc=False)