Почему этот код работает в Linux, но не в Windows? - PullRequest
0 голосов
/ 29 сентября 2018

Я задал предыдущий вопрос здесь относительно пометки часов в летнее время.@MattMessersmith любезно и умело ответил на мой вопрос, и его решение отлично работало в Linux (Ubuntu), , но не на любой из моих машин Windows (работа и дом).

На моих компьютерах с Windows работает Anaconda с Python 3.6 и pytz 2018.4, если это поможет.

Когда я запускаю код в Windows, я получаю следующую ошибку:

Traceback (most recent call last): 
File "<ipython-input-185-ed30519c4311>", line 1, in <module> 
  transition_times = [t.astimezone(tz) for t in transition_times] 
File "<ipython-input-185-ed30519c4311>", line 1, in <listcomp> 
  transition_times = [t.astimezone(tz) for t in transition_times] 
OSError: [Errno 22] Invalid argument

Вот код, который выдает ошибку на моих машинах Windows:

from pytz import timezone

# Map transition times to year for some efficiency gain                                                                                                                                                     
tz = timezone('America/Denver')
transition_times = tz._utc_transition_times[1:]
transition_times = [t.astimezone(tz) for t in transition_times]

1 Ответ

0 голосов
/ 29 сентября 2018

Это ошибка: [Windows] datetime.fromtimestamp (t) при сбое 0 <= t <= 86399 на Python 3.6 </a>.

Поскольку некоторые datetime object в tz._utc_transition_times[1:] меньше 1970-01-01 00:00:00.000.

...