在 pytz 中获取 NonExistentTimeError

问题描述 投票:0回答:1

以这个例子:

import pandas as pd
import pytz

timestamp = pd.Timestamp('2023-04-30 02:20:28.594000')
timezone = pytz.timezone('Africa/Casablanca')


print(
    timestamp.tz_localize(timezone, ambiguous=True)
)

我得到

NonExistentTimeError: 2023-04-30 02:20:28.594000

为什么这个时间不存在?我碰巧有当时卡萨布兰卡当地的数据。

python pandas timezone python-datetime pytz
1个回答
0
投票

此前预测摩洛哥 (

Africa/Casablanca
) 将于 2023 年 4 月 30 日进行“春季向前”过渡。这一点在 TZDB 2023a 版本中得到纠正。

摘自发布公告

Changes to future timestamps

In 2023 Morocco's spring-forward transition after Ramadan
will occur April 23, not April 30.  (Thanks to Milamber.)
Adjust predictions for future years accordingly.  This affects
predictions for 2023, 2031, 2038, and later years.

pytz 的版本遵循 tzdb 的版本。更新到当前版本的 pytz 并应相应调整过渡日期。

另请注意,pytz 已被弃用一段时间了。在新项目中,请考虑使用 zoneinfo 代替。请注意,zoneinfo 将使用本地计算机上存在的时区数据,或来自 tzdata 包的数据。无论哪种情况,请确保您使用的是最新版本。

© www.soinside.com 2019 - 2024. All rights reserved.