我正在尝试将字符串转换为日期时间 - 但转换后的时间比原始时间增加了 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')
最佳答案
转换不会使原始时间增加 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')
关于python - 转换为_datetime但保留原始时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49540781/