Skip to main content

timespan

Utilities for working with popular timespan formats.

.Net Timespans

Functions are provided for converting between .NET 7.0 TimeSpan objects (with format specifiers) and Python's datetime.timedelta objects.

timespan.from_string(str) -> timedelta

Converts a TimeSpan string in the current locale to a datetime.timedelta object, e.g.

>>> import timespan
>>> timespan.c(3, 17, 25, 30, 500)
'3.17:25:30.5000000'
>>> timespan.from_string('3.17:25:30.5000000')
datetime.timedelta(days=3, seconds=62730, microseconds=500000)

Parameters

  • timespan_string: TimeSpan string of any format and locale.

Return Value

A timedelta object.

timespan.to_string(specifier: str, *args: tuple) -> str

Converts date\time information (variable-length tuple) to a TimeSpan string in the current locale.

Parameters

  • specifier: format specifier. Options are 'c', 'g' and 'G'.
  • args: variable-length tuple (size 1, 3, 4 or 5) specifying components of date and time.

Return Value

A TimeSpan string

Notes

See the switch case of _args_to_seconds() in src/timespan/dotnet.py for full coverage of all input types.

Asterisk Timespans

Asterisk style timespans allow you to check if a timestamp falls within a specified list of boundaries. For example, you might want to program your phone system to only accept calls Mon-Fri from 9 a.m. to 5 p.m. except on holidays like Christmas.

Timespans are specified in the form of times|daysofweek|days|months. If your timespan starts with !, it'll only match if the timestamps falls outside the given range.

Basic example:

import timespan
from datetime import datetime

business_hours = [
    '9:00-17:00|mon-fri|*|*',  # is between 9 a.m. to 5 p.m. on Mon to Fri
    '!*|*|1|jan',              # not new years
    '!*|*|25|dec',             # not christmas
    '!*|thu|22-28|nov',        # not thanksgiving
]

if timespan.match(business_hours, datetime.now()):
    print "we're open for business!"
else:
    print "sorry, we're closed :("

For more examples, see the documentation or source code.

Metadata

Release files for timespan 0.2.0

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

Built distribution (wheel)

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

Release files / timespan-0.2.0-py3-none-any.whl

Download URL timespan-0.2.0-py3-none-any.whl
Size 9.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
167dda4cf7667edb3c13c888287d1c077716f8817984e85cefdb149378061d17
BLAKE2b-256 checksum
How to use checksums
678eeabdcfc51c2c54055134f7f34cffe2e426c95812dca18be0be6c4a902e4e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.9.2

Release history Release notifications | RSS feed

This release

0.2.0 This release

1 release file

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