Skip to main content

Time expression parser

Project description

https://travis-ci.org/wroberts/pytimeparse.svg?branch=master

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

Uploaded Source

Built Distributions

pytimeparse-1.1.4-py3-none-any.whl (9.7 kB view details)

Uploaded Python 3

pytimeparse-1.1.4-py2-none-any.whl (9.7 kB view details)

Uploaded Python 2

File details

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

File metadata

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

File hashes

Hashes for pytimeparse-1.1.4.tar.gz
Algorithm Hash digest
SHA256 4c8886835edfd6dd7b4438bc2ae53df1bf677da7e56ef5a9b4310ae9d759535b
MD5 c9b9b8c092dc3bd4a3d49cd0de178a8a
BLAKE2b-256 b9bd01d1040f133dd045d1ff3612c7cd85cca05fa81b97fe518bc7069d86f0ec

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 3ca4a4c413e10267a5834609a4d199f04ff521fc92b2ef917dc40ead5434e27c
MD5 71b7adfac0d4042f80c182f022f5779d
BLAKE2b-256 c9c4d332e427159c954196bd80533e93187b127355a6ff735a614939ba53367b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for pytimeparse-1.1.4-py2-none-any.whl
Algorithm Hash digest
SHA256 c537ec55c62079b00b7669fd6f26b7609bf4b625905af9c9b0d2fe1a53662038
MD5 6c0a2de761521db9f5680f6294bed690
BLAKE2b-256 0ea00a530134759f81af4f555b08a2231c22fbc8555c578c2accb68b895f4845

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