我有将欧洲/布鲁塞尔时间转换为 UTC 的代码。这段代码会处理 CET 和 CEST 转换吗?即它是否也处理夏令时转换为 UTC?如果没有,有人可以建议如何处理吗?
df['datetime'] = pd.to_datetime(df['date'] + " " + df['time']).dt.tz_localize('Europe/Brussels').\
dt.tz_convert('UTC').dt.strftime('%Y-%m-%d %H:%M:%S')
以下数据以荷兰时间提供。因此,它被转换为 UTC。
1/17/2018 1 0:00
1/17/2018 2 0:01
1/17/2018 3 0:02
1/17/2018 4 0:03
1/17/2018 5 0:04
1/17/2018 6 0:05
1/17/2018 7 0:06
1/17/2018 8 0:07
请您参考如下方法:
是的,它 native 处理夏令时。检查这个:
import pandas as pd
df = pd.DataFrame({'date': pd.to_datetime(['2017-08-30 12:00:00', '2017-12-30 12:00:00'])})
df['date'].dt.tz_localize('Europe/Brussels').dt.tz_convert('UTC').dt.strftime('%Y-%m-%d %H:%M:%S')
我选择了一个使用 DST 的日期,即 UTC+1+1,另一个只是 UTC+1(其中 +1 代表布鲁塞尔)。输出显示,第一个日期转换为负 2 小时,而第二个日期转换为负 1 小时。
0 2017-08-30 10:00:00
1 2017-12-30 11:00:00
