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.6.tar.gz (9.3 kB view details)

Uploaded Source

Built Distributions

pytimeparse-1.1.6-py3-none-any.whl (9.9 kB view details)

Uploaded Python 3

pytimeparse-1.1.6-py2-none-any.whl (9.9 kB view details)

Uploaded Python 2

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.6.tar.gz
Algorithm Hash digest
SHA256 74c52ae0db8a1d9055b9159bf09023ad5fba828b87ec47c0a9aed8129159ab46
MD5 6326b9cbd354561d8531f48db9648ea2
BLAKE2b-256 02f229c67308d28789118dee8e6cd6a922746473481731b851d5c7e3a2c106c1

See more details on using hashes here.

File details

Details for the file pytimeparse-1.1.6-py3-none-any.whl.

File metadata

File hashes

Hashes for pytimeparse-1.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 b441316447a4ff416cb6d2ff47a2570717511451fdb71807bdd08e723844b27a
MD5 e7e4f4ca256bb887c88697d7ab56ee65
BLAKE2b-256 eeb76314ed22384cd3937a254ab8697fd6ca596d1c0dcaf60b685361016581c9

See more details on using hashes here.

File details

Details for the file pytimeparse-1.1.6-py2-none-any.whl.

File metadata

File hashes

Hashes for pytimeparse-1.1.6-py2-none-any.whl
Algorithm Hash digest
SHA256 03e6eeab02b3016121d374b04c61297a2b56ce88aa153c41cdcdffc3dbbff7a8
MD5 5adac1f064b52f9a6e47d55b4dd95918
BLAKE2b-256 d1b28c2d08d54f5ee1bc0928b5704feb542b926c85b5c66ddbeb2c6928896814

See more details on using hashes here.

Supported by

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