Is there any python library for parsing dates and times from a natural language?
我要找的是可以将"明天早上6点"或"下一个中午模式"转换为适当的日期时间对象的东西。
ParseDateTime—能够解析"人类可读"日期/时间表达式的python模块。
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python from datetime import datetime import parsedatetime as pdt # $ pip install parsedatetime cal = pdt.Calendar() now = datetime.now() print("now: %s" % now) for time_string in ["tomorrow at 6am","next moday at noon", "2 min ago","3 weeks ago","1 month ago"]: print("%s:\t%s" % (time_string, cal.parseDT(time_string, now)[0])) |
产量
1 2 3 4 5 6 | now: 2015-10-18 13:55:29.732131 tomorrow at 6am: 2015-10-19 06:00:00 next moday at noon: 2015-10-18 12:00:00 2 min ago: 2015-10-18 13:53:29 3 weeks ago: 2015-09-27 13:55:29 1 month ago: 2015-09-18 13:55:29 |
从pyparsing wiki中查看您对这个示例的看法。它处理以下测试用例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | today tomorrow yesterday in a couple of days a couple of days from now a couple of days from today in a day 3 days ago 3 days from now a day ago now 10 minutes ago 10 minutes from now in 10 minutes in a minute in a couple of minutes 20 seconds ago in 30 seconds 20 seconds before noon 20 seconds before noon tomorrow noon midnight noon tomorrow 6am tomorrow 0800 yesterday 12:15 AM today 3pm 2 days from today a week from today a week from now 3 weeks ago noon next Sunday noon Sunday noon last Sunday |