当日期时间有两种不同的格式时进行解析-Python



根据物品是否超过一周,日期有以下格式:

不到一周的时间,包括星期几和时间:

date1 = "Monday 21:14"

一个多星期前,只是日期:

date2 = "5 Apr '21"

我将它们作为字符串读取,并需要将它们解析为一致的时间戳。

我尝试过的一种方法是:

from dateutil.parser import parse
parse(date1)
# output: datetime.datetime(2021, 4, 23, 22, 18)
parse(date2)
# output: datetime.datetime(2021, 4, 5, 0, 0)

使用dateutil包,我可以很容易地解析date2,但它给了我一个date1的前瞻性星期五,而不是前一个星期五。

你建议我如何分析这两个日期,而不知道会收到哪一个?我可以指示解析器获取上一个工作日(即上周五(的吗

非常感谢

为解析器设置默认值可能会起作用。由于您希望采用上一个工作日,以防未定义月份的日期,因此可以使用一周前的今天。

例如:

from datetime import datetime, timedelta
from dateutil import parser
date1 = "Monday 21:14"
date2 = "5 Apr '21"
# reference = date of today one week ago (as datetime object):
ref_date = datetime(*datetime.now().timetuple()[:3]) - timedelta(7)
for d in (date1, date2):
print(parser.parse(d, default=ref_date))

# 2021-04-12 21:14:00
# 2021-04-05 00:00:00

请注意,今天是2021-4-19年星期一,但此代码会为您提供前一个2021-4-12年星期一。

最新更新