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

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

File details

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

File metadata

  • Download URL: pytimeparse-1.1.8.tar.gz
  • Upload date:
  • Size: 9.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pytimeparse-1.1.8.tar.gz
Algorithm Hash digest
SHA256 e86136477be924d7e670646a98561957e8ca7308d44841e21f5ddea757556a0a
MD5 341b267e27e843eccaa839b91b16165b
BLAKE2b-256 375d231f5f33c81e09682708fb323f9e4041408d8223e2f0fb9742843328778f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.8-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 04b7be6cc8bd9f5647a6325444926c3ac34ee6bc7e69da4367ba282f076036bd
MD5 f8c5c884bde663f095b6ca30f3bd54a4
BLAKE2b-256 1bb4afd75551a3b910abd1d922dbd45e49e5deeb4d47dc50209ce489ba9844dd

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 Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page