转换to_datetime但保留原始时间

时间:2018-03-28 17:31:21

标签: python pandas datetime datetime-format python-datetime

我正在尝试将字符串转换为Datetime-但转换会在原始时间增加5个小时。我如何转换,但保持时间原样?

>>> import pandas as pd
>>> t = pd.to_datetime("2016-09-21 08:56:29-05:00", format='%Y-%m-%d %H:%M:%S')
>>> t
Timestamp('2016-09-21 13:56:29')

2 个答案:

答案 0 :(得分:2)

转换不会在原始时间增加5小时。 Pandas只是检测到您的日期时间是时区感知并将其转换为天真的UTC。但它的日期时间仍然相同。

如果您需要本地化的Timestamp实例,请使用Timestamp.tz_localize()使t成为时区感知的UTC时间戳,然后使用Timestamp.tz_convert()方法转换为UTC- 0500:

>>> import pandas as pd
>>> import pytz
>>> t = pd.to_datetime("2016-09-21 08:56:29-05:00", format='%Y-%m-%d %H:%M:%S')
>>> t
Timestamp('2016-09-21 13:56:29')
>>> t.tz_localize(pytz.utc).tz_convert(pytz.timezone('America/Chicago'))
Timestamp('2016-09-21 08:56:29-0500', tz='America/Chicago')

答案 1 :(得分:0)

要达到您想要的效果,您可以从时间字符串“2016-09-21 08:56:29-05:00”结束时删除“-5:00”

然而,Erik Cederstrand在解释大熊猫没有修改时间方面是正确的,它只是以不同的格式显示它。