Python неоднозначное время

При переводе часов на зимнее время возникают случаи неоднозначного времени: один и тот же час может встречаться дважды.

Например, в Берлине переход с летнего времени на зимнее в 2020 году пройдет 25 октября 2020 года в 3 часа ночи (Oct 25 at 3:00 am), и после перехода часы снова будут показывать 2 часа ночи, если использовать время 2-30 то возникнет проблема неоднозначности: это время до перевода или после.

dateutil позволяет воспользоваться методом is_ambiguous (или dateutil.tz.datetime_ambiguous(dt, tz=None)) для проверки таких меток.

Пример

Начиная с python3.6 так же можно руками указать на какой стороне перехода находится временная метка с помощью атрибута fold для datetime

Пример

fold = 0 – помечает метку как до перевода времени, отсюда в примере остается +02:00
fold = 1 – помечает метку как после перевода времени, отсюда в примере меняется на +01:00