Skip to main content

Time expression parser

Project description

Travis CI build status Test code coverage Latest Version

Copyright (c) 2014 Will Roberts <wildwilhelm@gmail.com>

Licensed under the MIT License (see source file timeparse.py for details).

A small Python library to parse various kinds of time expressions, inspired by this StackOverflow question.

The single function pytimeparse.timeparse.timeparse defined in the library (also available as pytimeparse.parse) parses time expressions like the following:

  • 32m

  • 2h32m

  • 3d2h32m

  • 1w3d2h32m

  • 1w 3d 2h 32m

  • 1 w 3 d 2 h 32 m

  • 4:13

  • 4:13:02

  • 4:13:02.266

  • 2:04:13:02.266

  • 2 days, 4:13:02 (uptime format)

  • 2 days, 4:13:02.266

  • 5hr34m56s

  • 5 hours, 34 minutes, 56 seconds

  • 5 hrs, 34 mins, 56 secs

  • 2 days, 5 hours, 34 minutes, 56 seconds

  • 1.2 m

  • 1.2 min

  • 1.2 mins

  • 1.2 minute

  • 1.2 minutes

  • 172 hours

  • 172 hr

  • 172 h

  • 172 hrs

  • 172 hour

  • 1.24 days

  • 5 d

  • 5 day

  • 5 days

  • 5.6 wk

  • 5.6 week

  • 5.6 weeks

It returns the time as a number of seconds (an integer value if possible, otherwise a floating-point number):

>>> from pytimeparse import parse
>>> parse('1.2 minutes')
72

A number of seconds can be converted back into a string using the datetime module in the standard library, as noted in this other StackOverflow question:

>>> from pytimeparse import parse
>>> import datetime
>>> parse('1 day, 14:20:16')
138016
>>> str(datetime.timedelta(seconds=138016))
'1 day, 14:20:16'

Future work

  1. Give the user more flexibility over which characters to use as separators between fields in a time expression (e.g., + might be useful).

  2. Internationalisation?

  3. Wow, https://github.com/bear/parsedatetime .

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytimeparse-1.1.7.tar.gz (9.4 kB view details)

Uploaded Source

Built Distribution

pytimeparse-1.1.7-py2.py3-none-any.whl (10.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file pytimeparse-1.1.7.tar.gz.

File metadata

File hashes

Hashes for pytimeparse-1.1.7.tar.gz
Algorithm Hash digest
SHA256 51b641bcd435e0cb6b9701ed79cf7ee97fa6bf2dbb5d41baa16e5486e5d9b17a
MD5 046584bbf2625f87a1a6c5abed70a7c0
BLAKE2b-256 a0043bed21467ade80579ce4dd867055e6150444543de013fca55ce8fb0505c9

See more details on using hashes here.

File details

Details for the file pytimeparse-1.1.7-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for pytimeparse-1.1.7-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d9e40094402ca57e654a181da8bb604d790641801ee92aeaa4c708018d5fc59f
MD5 47661411438267c161c7eda394829e8a
BLAKE2b-256 e4e6ba53299c1bcb3eed4e72730a52a80f4909f1fcde1b2dad91a1d37fc91c1c

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page