【问题标题】:datetime.timedelta returns unexpected results?datetime.timedelta 返回意外结果?
【发布时间】:2015-02-22 13:53:12
【问题描述】:

我似乎不明白我应该如何使用 Python 的 datetime.timedelta 函数来计算明天的日期。

例子:

from datetime import datetime, timedelta print(datetime.now()) print( datetime.now() + timedelta(hours=24))

输出:

2015-02-22 14:51:11.515000 2015-02-23 05:18:30.728056

但第二行应该更像: 2015-02-23 14:51:11

您可以在here 中看到这一点。

更新感谢大家的cmets!显然timedelta 在 Python 2.7.2 [1] 上被破坏了——不过,如果能找出这个问题是在哪个版本中修复的,那就太好了。

[1] 感谢J.F. Sebastian 指出我错了:timedelta 在 Repl.it's Empythoned 上被破坏了

【问题讨论】:

  • 奇怪...似乎在我的机器上运行良好
  • 您的代码在我的机器上也可以正常工作。
  • 点击描述中的链接也可以在repl.it上查看问题
  • 只是确保...您是否也在自己的机器上尝试过,或者只是 repl.it?
  • timedelta 在 CPython 2.7.2 中没有被破坏。它在使用 Empythoned(CPython 使用 emscripten 编译为 JS)的 repl.it 上被破坏。

标签: python python-2.7 datetime timedelta empythoned


【解决方案1】:

那里的timedelta实现被破坏了:

   timedelta(hours=24)
=> datetime.timedelta(0, 52039, 213056)

应该是 1 天(或 86400 秒,这是 52039 秒和 213056 微秒)

另外,中间值失败:

timedelta(seconds=65000)
Internal error: Assertion failed: 0 <= temp && temp < 1000000

【讨论】:

    【解决方案2】:

    你链接的python好像坏了,我机器上的结果:

      >>> from datetime import datetime, timedelta                                                                                                                                     
    >>> print(datetime.now())                                                                                                                                                        
    2015-02-22 15:03:44.447179                                                                                                                                                       
    >>> for i in range(24):                                                                                                                                                          
    ...     print( datetime.now() + timedelta(hours=i))                                                                                                                              
    ...                                                                                                                                                                              
    2015-02-22 15:03:46.383497                                                                                                                                                       
    2015-02-22 16:03:46.383625                                                                                                                                                       
    2015-02-22 17:03:46.383677                                                                                                                                                       
    2015-02-22 18:03:46.383721                                                                                                                                                       
    2015-02-22 19:03:46.383765                                                                                                                                                       
    2015-02-22 20:03:46.383819                                                                                                                                                       
    2015-02-22 21:03:46.383841                                                                                                                                                       
    2015-02-22 22:03:46.383866                                                                                                                                                       
    2015-02-22 23:03:46.383887                                                                                                                                                       
    2015-02-23 00:03:46.383909                                                                                                                                                       
    2015-02-23 01:03:46.383930                                                                                                                                                       
    2015-02-23 02:03:46.383952                                                                                                                                                       
    2015-02-23 03:03:46.383973                                                                                                                                                       
    2015-02-23 04:03:46.383995                                                                                                                                                       
    2015-02-23 05:03:46.384017                                                                                                                                                       
    2015-02-23 06:03:46.384063                                                                                                                                                       
    2015-02-23 07:03:46.384094                                                                                                                                                       
    2015-02-23 08:03:46.384212                                                                                                                                                       
    2015-02-23 09:03:46.384240                                                                                                                                                       
    2015-02-23 10:03:46.384262                                                                                                                                                       
    2015-02-23 11:03:46.384290                                                                                                                                                       
    2015-02-23 12:03:46.384318                                                                                                                                                       
    2015-02-23 13:03:46.384337                                                                                                                                                       
    2015-02-23 14:03:46.384388 
    

    而在链接解释器上

    2015-02-22 15:01:16.352000
    2015-02-22 15:01:16.353000
    2015-02-22 16:01:16.354000
    Internal error: Assertion failed: 0 <= temp && temp < 1000000
    

    【讨论】:

      猜你喜欢
      • 2017-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-10
      • 2016-02-24
      相关资源
      最近更新 更多