熊猫到地球的时间产生了不可能的时间



我正在使用panda将字符串转换为时间戳。我有一个字符串如下'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是如何引入不可能的日期的?

Pandas正在将您的字符串转换为UTC时间。当省略"PST"时,问题就不存在了,因为Panda默认情况下假设您提供的时间戳已经是UTC,所以它没有进行转换。

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

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

相关内容

  • 没有找到相关文章

最新更新