【发布时间】:2019-10-23 09:25:26
【问题描述】:
我的目标是将 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 时间时,结果是 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() 方法是否无法正确读取时区?
谢谢
【问题讨论】:
标签: python pandas datetime timezone unix-timestamp