Разбор строки в дату во время изменения DST - PullRequest
0 голосов
/ 27 октября 2019

В Западной Европе этим утром 2019-10-27 02:30:00 фактически могут быть "два" временных события:

  • 02: 30 до изменения летнего времени в 03:00.
  • 03:30, который стал (после изменения летнего времени в 03:00) 02:30

Как datetime синтаксический анализатор и pytz имеют дело сфакт синтаксического анализа этой даты может привести к двум различным временным событиям?

import datetime, pytz
d = datetime.datetime.strptime("2019-10-27 02:30:00", '%Y-%m-%d %H:%M:%S')
pst = pytz.timezone('Europe/Paris')
d = pst.localize(d)
print(d)  # 2019-10-27 02:30:00+01:00
print(d.timestamp())  # 1572139800.0

Действительно, это также могло бы быть 2019-10-27 02:30:00+02:00 (то есть 02:30, UTC + 2, до изменения времени по летнему времени). ).


Примечание:

import datetime
print(datetime.datetime.fromtimestamp(1572139800.0))  # 2019-10-27 02:30:00
print(datetime.datetime.fromtimestamp(1572136200.0))  # 2019-10-27 02:30:00

(эти две разные метки времени UTC действительно имеют одинаковую дату и время в часовом поясе Европы / Парижа)

...