我正在尝试将字符串转换为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')
答案 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在解释大熊猫没有修改时间方面是正确的,它只是以不同的格式显示它。