Skip to main content

pytimeparse: time expression parser

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

  • 1-04:18:35 (Slurm elapsed-time format: days-hours:minutes:seconds)

  • 1-04:18:35.25

  • 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 .

Metadata

Release files for pytimeparse 1.1.10

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pytimeparse 1.1.10
File Size Uploaded
pytimeparse-1.1.10.tar.gz 11.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pytimeparse 1.1.10
File Interpreter ABI Platform
pytimeparse-1.1.10-py3-none-any.whl Python 3 none any Details

Total release size: 22.3 kB

Release files / pytimeparse-1.1.10.tar.gz

Download URL pytimeparse-1.1.10.tar.gz
Size 11.6 kB
Tags Source
SHA-256 checksum
How to use checksums
ecf0ee613a72cb0b1d3d5404bd398a64266576fc36ccf3149178af6f2ec6f736
BLAKE2b-256 checksum
How to use checksums
92bf87bd96fd60abf241cae10e6f7fc3882c8a81ebdbe76f49f9c3116b5b38ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release files / pytimeparse-1.1.10-py3-none-any.whl

Download URL pytimeparse-1.1.10-py3-none-any.whl
Size 10.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9f9117a02eaa32efd268e70af29bc3ec1e84f473d3edef6d9809b36793b1c5d
BLAKE2b-256 checksum
How to use checksums
b1e4507b557e0f2a8dcddb14bb951bcf2ac04afc229e73c7256ccbc3a930ca58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.10.11

Release history Release notifications | RSS feed

This release

1.1.10 This release

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.7

2 release files

1.1.6

3 release files

1.1.5

3 release files

1.1.4

3 release files

1.1.3

3 release files

1.1.2

1 release file

1.1.1

1.1.0

1 release file

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page