Python: Как проверить, является ли дата неоднозначной? - PullRequest
2 голосов
/ 20 апреля 2020

Есть ли какой-нибудь простой способ, как определить, является ли дата в объекте datetime неоднозначной - это означает, что конкретная дата-время может существовать дважды в конкретном часовом поясе в порядке регулярного изменения времени?

Вот пример неоднозначный объект datetime. В часовом поясе Нью-Йорка, 5 ноября 2017 года в 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

1 Ответ

2 голосов
/ 20 апреля 2020

Вы ищете функцию datetime_ambiguous, которая применяется во время обратного перехода (например, в конце DST при падении).

dateutil.tz.datetime_ambiguous(dt, eastern_time)

Вы также можете быть интересует datetime_exists, который применяется во время прямого перехода (например, начало перехода на летнее время весной).

...