Skip to main content
 首页 » 编程设计

python之CET 和 CEST 转换为 UTC

2025年05月04日23Leo_wl

我有将欧洲/布鲁塞尔时间转换为 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