Skip to main content

Time expression parser

Project description

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

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pytimeparse-1.1.3-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

pytimeparse-1.1.3-py2-none-any.whl (9.6 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for pytimeparse-1.1.3.tar.gz
Algorithm Hash digest
SHA256 6fd49083b9fdc5334f4cfb46b328fbe100b6685e7199cbf87c89243633b868bf
MD5 8f15cc6bf4eeb40c47afafd341ddb127
BLAKE2b-256 01d52c9d5ea67647f7b3d76bd873cd40820d0e0dec52cfcfc49510ea358ecd87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 63dfeaf22f43e338682caf830f939263ccac62dd8341113337b7948a0b54d914
MD5 59cab7208205394801d06f8934b80242
BLAKE2b-256 e8c2814b0b7962e9240a1a3033b66e3f67d4ac6dc714ce91dbbd029f2fccadb1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.3-py2-none-any.whl
Algorithm Hash digest
SHA256 09a2c8ae8b94b6124d44e46a642626535f09435806ee6fe9f7e5d615a8ec7d8a
MD5 5e515e2d20b87b6eea0835542ea23f7c
BLAKE2b-256 9107c5fde9471f8c707a00ce5abe8e73d1621e4609186013739c90b6cf677c4b

See more details on using hashes here.

Supported by

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