代码之家  ›  专栏  ›  技术社区  ›  Sean McCarthy

为什么这段代码在Linux上工作而在Windows上不工作?

  •  0
  • Sean McCarthy  · 技术社区  · 6 年前

    here ,关于标记的夏令时小时数@马特梅塞斯密斯和蔼而熟练地回答了我的问题和他的解决办法 在Linux中运行良好 (Ubuntu版), 但不是在我的任何一台Windows机器上 (工作和家庭)。

    在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 回复  |  直到 6 年前
        1
  •  3
  •   Feng    6 年前

    这是一个错误: [Windows] datetime.fromtimestamp(t) when 0 <= t <= 86399 fails on Python 3.6

    datetime object 在里面 tz._utc_transition_times[1:] 小于 1970-01-01 00:00:00.000