0
import dateparser
print(dateparser.parse("1 week"))
print(dateparser.parse("1 month"))
print(dateparser.parse("6 months"))
print(dateparser.parse("1 year"))

上面的代码行返回以下输出:

2022-01-27 11:30:50.229535
2022-01-03 11:30:50.231393
2021-08-03 11:30:50.232393
2021-02-03 11:30:50.232938

本质上,他们考虑当前时间戳并返回前一周或前一个月或前 6 个月或前一年日期时间。如果我希望日期解析器考虑自定义时间戳并基于该时间戳返回前一周或前一个月或前 6 个月或前一年日期时间怎么办?例如:对于上述相同的代码,我想要以下输出,因为我希望日期解析器将开始日期视为 2021-06-13 11:30:50.229535

2022-06-06 11:30:50.229535
2022-05-14 11:30:50.231393
2021-01-13 11:30:50.232393
2020-06-13 11:30:50.232938

如何去配置这个开始日期?

4

1 回答 1

0

您可以通过键在设置 dict中定义它。RELATIVE_BASE

文档

RELATIVE_BASE:允许设置用于解释部分或相对日期字符串的基本日期时间。默认为当前日期和时间。

前任:

from datetime import datetime
import dateparser

settings={'RELATIVE_BASE': datetime.fromisoformat("2021-06-13 11:30:50.229535")}

print(dateparser.parse("1 week", settings=settings))
print(dateparser.parse("1 month", settings=settings))
print(dateparser.parse("6 months", settings=settings))
print(dateparser.parse("1 year", settings=settings))
# 2021-06-06 11:30:50.229535
# 2021-05-13 11:30:50.229535
# 2020-12-13 11:30:50.229535
# 2020-06-13 11:30:50.229535
于 2022-02-03T19:28:38.760 回答