【发布时间】:2020-12-09 01:41:38
【问题描述】:
据我所知,一旦 dateutil 解析这两个日期字符串('2020-10-07'、'2020-10-07T00:00:00'),就无法区分它们。我真的希望能够区分独立日期和时间戳为零的日期。
import dateutil.parser
import datetime
date_str = '2020-10-07'
time_str = '2020-10-07T00:00:00'
s = dateutil.parser.parse(date_str)
e = dateutil.parser.parse(time_str)
最终目标是在一天结束时将时间设置为一天的开始,当它是一个独立的日期时,但在包含时间的情况下不考虑日期。接近这样的事情,但它仍然无法与这种情况区分开来。如果您知道任何对此非常有帮助的好的解决方案。
if s == e and s.time() == datetime.time.min:
e = datetime.datetime.combine(e, datetime.time.max)
Post 有点用,但它已经过时了,我什至不确定它是否适用于我的用例。 Finding if a python datetime has no time information
【问题讨论】:
-
为什么不直接分析字符串呢?例如如果它使用特定指令解析为日期时间?不知道你为什么必须首先在这里使用
dateutil;这些 ISO 格式字符串可以很好地解析标准库的fromisoformat。 -
我不想使用纯字符串解析的主要原因是我想解决它比这更不那么脆弱和更灵活的解决方案。需要 dateutil 的原因实际上是为了向后兼容,因此任何日期都不是严格的 iso 格式,一旦进行此更新,就不会停止工作。
标签: python-3.x datetime python-dateutil