我的目标是将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')
添加世界协调时信息
>>> 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 阿拉斯加夏令时 8 小时。
事实上,我得到的相同的Unix时间戳与时区无关:
>>> pd.to_datetime(nw_pd_file['datetime(utc)'][0],format='%Y-%m-%d %H:%M:%S').tz_localize('UTC').timestamp()
1556314691.0
时间戳(( meothod 无法正确读取时区吗?
谢谢
UNIX 时间戳设计为与时区无关。查看此线程 unix 时间戳会跨时区更改吗?
您的代码将同一时间转换为两个不同的时区,但它们的 UNIX 时间戳保持不变。