为什么此代码适用于 Linux 但不适用于 Windows?
Why does this code work on Linux but not on Windows?
我问过一个关于标记夏令时的问题 。 @MattMessersmith 亲切而专业地回答了我的问题,他的解决方案 在 Linux (Ubuntu)、 中完美运行,但在我的任何一个 Windows 机器(工作和家庭)。
我的 Windows 机器都是 运行ning Anaconda with 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]
这是一个错误:[Windows] datetime.fromtimestamp(t) when 0 <= t <= 86399 fails on Python 3.6。
因为tz._utc_transition_times[1:]
中有些datetime object
小于1970-01-01 00:00:00.000
.
我问过一个关于标记夏令时的问题
我的 Windows 机器都是 运行ning Anaconda with 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]
这是一个错误:[Windows] datetime.fromtimestamp(t) when 0 <= t <= 86399 fails on Python 3.6。
因为tz._utc_transition_times[1:]
中有些datetime object
小于1970-01-01 00:00:00.000
.