在Python中解析人类可读的重复日期
问题。在my Django应用程序中,用户为计划执行创建任务。用户是非常非技术性的,如果他们能够编写常规的人类可读表达式来定义何时执行某些任务,那就太好了,例如:在Python中解析人类可读的重复日期,python,django,date,python-dateutil,python-datetime,Python,Django,Date,Python Dateutil,Python Datetime,问题。在my Django应用程序中,用户为计划执行创建任务。用户是非常非技术性的,如果他们能够编写常规的人类可读表达式来定义何时执行某些任务,那就太好了,例如: 每周一 每周五、周三 每日 每月1日、14日、20日 每周五;每月底 这一点的灵感来自于。现在,只需要日期;没有时间。我花了几个小时在谷歌上搜索一个图书馆来做这件事,但运气不好。我希望在_范围(表达式、日期)中有一个函数,例如,,这样: >>> in_range('every monday, wednesday'
- 每周一
- 每周五、周三
- 每日
- 每月1日、14日、20日
- 每周五;每月底
,这样:
>>> in_range('every monday, wednesday', date(2014, 4, 28))
True
>>> in_range('every end of month', date(2014, 5, 12))
False
>>> in_range('every millenium', date(2014, 5, 8))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: unknown token "millenium".
>>在_范围内('每周一、周三',日期(2014年4月28日))
真的
>>>在_范围内(“每个月末”,日期(2014年5月12日))
假的
>>>在_范围内(“每千年”,日期(2014年5月8日))
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
ValueError:未知标记“millenium”。
变体。这就是我所看到的
- 标准的
datetime
库进行日期解析,但不进行如上所述的日期范围解析
- -支持通过
rrule
重复日期,功能非常强大,但仍不支持解析
- 并且接受标准的Unix crontab语法(并允许指定工作日等),但这种语法仍然太过技术化,如果可能的话,我希望避免使用
- 并且不支持该功能
那么,有没有我错过的Python代码片段或库来做这件事?如果没有,我将自己编写解析器。如果它看起来不太糟糕的话,我想在开源中发布它。是一个库,它将执行自然语言日期解析,并支持重复日期。它与您提供的API不匹配,但允许您创建可与Python的datetime
库一起使用的规则
从他们的Github页面:
日期和重复事件的自然语言解析
例子
日期时间
- 下周二
- 明天
- 一小时后
重复事件
- 平日
- 从2010年1月1日到2020年12月25日,每月四分之一
- 每周四到下个月
- 每年11月的第四个星期四
- 周二和周四3:15
凌乱的字符串
- 请把会议安排在每隔周二中午
- 设置下周二晚上11点的闹钟
非常感谢你!这正是我要找的东西!