-1

我想比较包括日期在内的 2 次。例如:“2016 年 1 月 23 日下午 4:16:09”和“2016 年 1 月 24 日晚上 9:43:44”

我认为最简单和最好的方法是将其转换为纪元并进行比较。(如果有比这更好的方法,请告诉我)

我试过这个:

from dateutil.parser import parse
import datetime

timer = 'Jan 23 2016 10:30:08AM'
d = parse(timer).strftime('%Y,%m,%d,%H,%M,%S')

>>> d
'2016,01,23,10,30,08'

但因为它是一个字符串,所以我无法传递这个值 datetime.datetime(d) 我也尝试了 strip()。但不起作用。

datetime.datetime(d.strip())

TypeError: an integer is required (got type str)

请帮忙。

4

1 回答 1

4
  1. Parse 已经返回datetime对象。.strftime将 datetime 对象转换为字符串,因此它不起作用。

  2. datetime对象已经具有可比性,您不必将它们转换为纪元:

>>> from dateutil.parser import parse
>>> d1 = parse("Jan 23 2016 4:16:09PM")
>>> d2 = parse("Jan 24 2016 9:43:44PM")
>>> d1
datetime.datetime(2016, 1, 23, 16, 16, 9)
>>> d2
datetime.datetime(2016, 1, 24, 21, 43, 44)
>>> d1 > d2
False
>>> d1 == d2
False
>>> d1 < d2
True
于 2019-11-22T09:48:13.020 回答