如何在python中将时间“now-5m”转换为datetime对象

Taj*_*din 1 python datetime

我有一个场景,我可以使用以下任何格式获取日期时间。

1) 作为以下格式的字符串:1970-01-01T00:00:00

2)“现在-5m”

3)“现在-1小时”

或与 min、second 甚至 day 类似的组合,我想要一个比这个给定时间早 x min 的时间,最好的方法是什么?是否有任何库可以处理所有这些格式并以某种统一格式为我提供日期时间?

Taj*_*din 5

经过更多研究,我发现有一个名为 dateparser 的模块,它提供了一种解析方法,使用 parse 方法我们可以将任何格式转换为 datetime.datetime 对象,然后我们可以按照 prosti 的建议使用相对增量方法进行减法。

示例代码

import dateparser
from dateutil.relativedelta import relativedelta

print(dateparser.parse("now"))
print(dateparser.parse("now-30s"))
print(dateparser.parse("now-5m"))
print(dateparser.parse("1970-01-01T00:00:00"))
print(dateparser.parse("1970/01/01T00:00:00"))
print(type(dateparser.parse("1970/01/01T00:00:00")))
dt = dateparser.parse("now-5m")
print(dt - relativedelta(minutes=10)) # equals to now -15 min
Run Code Online (Sandbox Code Playgroud)

输出::

2019-05-06 12:55:54.074220

2019-05-06 12:55:24.076534

2019-05-06 12:50:54.077823

1970-01-01 00:00:00

1970-01-01 00:00:00

2019-05-06 12:40:54.087881

您可以在 :: https://pypi.org/project/dateparser/阅读更多信息