Python: 如何判断日期是否有歧义?

Python: How to check if date is ambiguous?

是否有任何简单的方法,如何确定日期时间对象中的日期是否不明确 - 这意味着特定日期时间可以在特定时区中按常规时间更改的顺序存在两次?

这是一个不明确的日期时间对象的例子。在纽约时区,2017 年 11 月 5 日凌晨 2 点,时间调回凌晨 1 点。

import datetime
import dateutil

# definition of time zone
eastern_time = dateutil.tz.gettz('America/New_York')

# definition of ambiguous datetime object
dt = datetime.datetime(2017, 11, 5, 1, 30, 0, tzinfo=eastern_time)

我期待这样的事情。

>>> suggested_module.is_dt_ambiguous(dt)
True

您正在寻找 datetime_ambiguous 函数,它适用于向后过渡期间(例如秋季夏令时结束)。

dateutil.tz.datetime_ambiguous(dt, eastern_time)

您可能还对 datetime_exists 感兴趣,它适用于前向转换期间(例如 spring 中夏令时的开始)。