[英]Python Convert Daylight Saving time to Standard Zone time
我有來自外地(佛羅里達州)的數據,它在當地時間保存。 佛羅里達有夏令時。 所以,我想將其轉換為 EST 區域。 我該怎么做? 我的代碼:
local_df.index = DatetimeIndex(['2019-06-01 06:58:45', '2019-10-01 06:59:00',
'2019-10-01 06:59:15',
'2020-07-18 09:16:30', '2020-07-18 09:16:45'],
dtype='datetime64[ns]', name='', freq=None)
est_df.index = local_df.index.tz_localize(tz='EST')
est_df.index = DatetimeIndex(['2019-06-01 06:58:45-05:00', '2019-10-01 06:59:00-05:00',
'2019-10-01 06:59:15-05:00','2020-07-18 09:16:30-05:00', '2020-07-18 09:16:45-05:00'],
dtype='datetime64[ns]', name='', freq=None)
我上面的代碼實際上並沒有將當地時間轉換為東部標准時間,它只附加了與 UCT 的時差。 這是不正確的。
請注意, EST
不是時區,而是在一年中的特定時間與特定時區的 UTC 的偏移量。 我建議使用IANA 時區名稱來代替明確的地理歸屬。 旁注:佛羅里達有兩個時區; 美國/東部和美國/中部。
此外,要將UTC 時間轉換為時區時間,您必須先本地化為 UTC。 你的代碼可能看起來像
import pandas as pd
dti = pd.DatetimeIndex(['2019-06-01 06:58:45', '2019-10-01 06:59:00', '2019-10-01 06:59:15',
'2020-07-18 09:16:30', '2020-07-18 09:16:45'])
dti_UTC = dti.tz_localize('UTC')
dti_USEastern = dti_UTC.tz_convert('US/Eastern')
# dti_USEastern
# DatetimeIndex(['2019-06-01 02:58:45-04:00', '2019-10-01 02:59:00-04:00',
# '2019-10-01 02:59:15-04:00', '2020-07-18 05:16:30-04:00',
# '2020-07-18 05:16:45-04:00'],
# dtype='datetime64[ns, US/Eastern]', freq=None)
但是,如果輸入類似於local time ,例如美國/東部,您可以直接本地化到該時區:
dti_USEastern = dti.tz_localize('US/Eastern')
# dti_USEastern
# DatetimeIndex(['2019-06-01 06:58:45-04:00', '2019-10-01 06:59:00-04:00',
# '2019-10-01 06:59:15-04:00', '2020-07-18 09:16:30-04:00',
# '2020-07-18 09:16:45-04:00'],
# dtype='datetime64[ns, US/Eastern]', freq=None)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.