我的目标是将UTM转换为本地时间,然后转换为Unix时间。 这是原始时间:
import pandas as pd
pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S')
Timestamp('2019-04-26 21:38:11')
添加utc信息
>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC')
Timestamp('2019-04-26 21:38:11+0000', tz='UTC')
转换为阿拉斯加当地时间:
>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').tz_convert(pytz.timezone("America/Anchorage"))
Timestamp('2019-04-26 13:38:11-0800', tz='America/Anchorage')
到目前为止,一切都很好。但是,当我将正确的本地时间转换为Unix时间时,restul使用UTC而不是阿拉斯加本地时间:
>>>pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').tz_convert(local).timestamp()
1556314691.0
应该是
1556314691.0-8 * 3600 = 1556285891.0#8八小时阿拉斯加夏令时间。
实际上,我得到了与时区无关的相同Unix时间戳:
>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').timestamp()
1556314691.0
timestamp()方法是否无法正确读取时区?
谢谢
答案 0 :(得分:1)
UNIX时间戳被设计为与时区无关。查看此线程Do unix timestamps change across timezones?
您的代码将相同的时间转换为两个不同的时区,但是它们的UNIX时间戳保持不变。