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

Uploaded Source

Built Distributions

pytimeparse-1.1.5-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

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

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for pytimeparse-1.1.5.tar.gz
Algorithm Hash digest
SHA256 9addbd29ae638e610a78a3cb50371f2091938de89c1ab61fa9cde7556a18b207
MD5 bfae79d31fea441bcb500e560bf56c86
BLAKE2b-256 b4d0ed98e65b376771fedcaebe4639c9348f92a9c82f156f2db0d915ae3a69a1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0fbd816de24a1d1e1d97ed4e27377ee5728c37bfd9cadca865ec07996619f5c2
MD5 3da068387f52c47c5bd7ac9fcffd6295
BLAKE2b-256 4da0135c57bc0a2544ca06f47eee57395dea69cde67874deaa1c7d06cb4455a0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.5-py2-none-any.whl
Algorithm Hash digest
SHA256 8ab206d27665befbe659473937b8c1b4cf3fb584037a0fd2134723bd0f3c827e
MD5 948856a84afe40eaa41bbc7598fb2e79
BLAKE2b-256 525bb4459181ddc305ea8baf0899ff6c1063e7b9a07541a6ea8e33312ab633a5

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