首页 > 解决方案 > 如何从人类日期获得一致的日期时间对象?

问题描述

我想转换人工调度对话,例如:

到日期时间对象或持续时间。我能够找到有用的 python 包,例如timefhumandateparser,但它们都只能做很少的事情而不是全部。

例子:

print(timefhuman('30 minutes'))

给出:

return TimeToken(relative_hour=hour, minute=minute, time_of_day=time_of_day)
  File "/Users/Daniyal/opt/anaconda3/lib/python3.8/site-packages/timefhuman/data.py", line 297, in __init__
    assert 0 <= self.hour < 24
AssertionError

虽然print(dateparser.parse('30 minutes')) 给:

2021-03-28 12:46:08.979070

这是它自己的格式(过去与未来),如果我同时使用这两种格式,这会使应用程序易碎且难以扩展。例如这种情况:

print(timefhuman('1.5 hour'))

给出:

2021-01-05 00:00:00

尽管:

print(dateparser.parse('1.5 hour'))

给出:

2021-03-28 08:38:27.310565

结果完全不同。

& 有时没有人给出诸如“一个半小时”之类的字符串的答案。

我该怎么办?鉴于每个都有自己的局限性,即使一起使用,结果也不同。

标签: pythondatetimenlpdatetime-formatpython-datetime

解决方案


推荐阅读