4

I'm trying to parse strings containing (natural language) times to hh:mm time objects? For example:

"ten past five"
"quarter to three"
"half past noon"
"15 past 3"
"13:35"
"ten fourteen am"

I've looked into Chronic for Ruby and Natty for Java (as well as some other libraries) but both seem to focus on parsing dates. Strings like "ten past five" are not parsed correctly by either.

Does anyone know of a library which suit my needs? Or should I maybe start working on my own parser?

K DawG
  • 13,287
  • 9
  • 35
  • 66
Bert
  • 310
  • 4
  • 10
  • This one seems beautiful, and supports many languages: https://github.com/scrapinghub/dateparser – David Feb 12 '23 at 10:27

2 Answers2

10

parsedatetime looks promising. Credit.

Community
  • 1
  • 1
Achal Dave
  • 4,079
  • 3
  • 26
  • 32
  • parsedatetime does some of the things I need, but it does not seem to parse strings like "ten past five", "quarter to three", "half past noon"... – Bert Jul 05 '12 at 09:21
  • 1
    Alas, that was all some searching returned... You may want to add to that plugin or write a wrapper function with custom logic for those cases if you can't find any other plugin. – Achal Dave Jul 05 '12 at 09:28
5

I didn't feel like extending parsedatetime, so I decided to use pyPEG, a parser interpreter framework for Python, to write a dedicated time parser. For whoever's interested, the first basic version is now finished, and nicely parses Dutch time strings.

Bert
  • 310
  • 4
  • 10
  • Just for anyone who is interested, I found this: [https://gist.github.com/akatzbreaker/5849024](https://gist.github.com/akatzbreaker/5849024) This is the **same** as Bert's Anwser on Github, but it is in English... **Just for anyone who is interested on this, and doesn't know Dutch :-P ...** – ant0nisk Jun 24 '13 at 10:02