首页 > 解决方案 > ValueError:发现时间倒置

问题描述

我正在使用 datetimerange 来检查日期是否在两个日期之间。不幸的是,在没有退出程序或显示任何内容的情况下,我不知何故收到了一条奇怪的错误消息。只有当我 ctrl+c 时,我才会收到此错误:

ValueError:发现时间倒置:2021-09-02 14:48:34.796000+00:00 > 2021-08-25 12:27:20.603000+00:00

所以这是导致它的行:

      try:
        inRange = time_in_range(start_date, end_date, timestamp)
      except:
        inRange = time_in_range(end_date, start_date, timestamp)

我从elasticsearch日志中得到了日期,之前没有得到这个,所以我不知道它是什么原因造成的。我什至不明白这个错误信息。

你知道问题是什么吗?互联网上几乎没有任何信息,所以我想我遇到了一个错误或者很明显。

谢谢

标签: python-3.x

解决方案


我想问题是范围不正确。我可以轻松触发此消息 - 请参见下面的代码:

#!/usr/bin/python3.9
from datetimerange import DateTimeRange
d1="2015-03-22T10:00:00+0900";
d2="2015-03-22T10:10:00+0900";
print(DateTimeRange(d1,d2).validate_time_inversion())
print(DateTimeRange(d2,d1).validate_time_inversion())

输出:

None
Traceback (most recent call last):
  File "/home/username/py/time_inversion_ex.py", line 6, in <module>
    print(DateTimeRange(d2,d1).validate_time_inversion())
  File "/usr/local/lib/python3.9/dist-packages/datetimerange/__init__.py", line 272, in validate_time_inversion
    raise ValueError(
ValueError: time inversion found: 2015-03-22 10:10:00+09:00 > 2015-03-22 10:00:00+09:00

推荐阅读