Skip to main content

Utilities for parsing ISO 8601 times, dates, datetimes, intervals, and durations

Project description

A set of utilities for parsing and validating ISO 8601 dates, times, durations, and intervals that also conform to the rfc3339 recommendations.

>>> from iso8601utils import parsers
>>> parsers.interval('2016-08-01T23:10:59.111Z/2016-08-08T00:13:23.001Z')
Interval(repeat=0, start=datetime.datetime(2016, 8, 1, 23, 10, 59, 111),
end=datetime.datetime(2016, 8, 8, 0, 13, 23, 1),
delta=Duration(timedelta=datetime.timedelta(6, 3743, 999890), monthdelta=MonthDelta(0)))

>>> parsers.interval('2002-08-15T16:20:05.100+08:10/2002-10-12T17:05:25.020-01:40')
Interval(repeat=0, start=datetime.datetime(2002, 8, 15, 16, 20, 5, 100, tzinfo=<TimezoneInfo(+8:10)>),
end=datetime.datetime(2002, 10, 12, 17, 5, 25, 20, tzinfo=<TimezoneInfo(-1:40)>),
delta=Duration(timedelta=datetime.timedelta(-3, 38119, 999920), monthdelta=MonthDelta(2)))

>>> parsers.duration('P3Y6M4DT12H30M5S')
Duration(timedelta=datetime.timedelta(4, 45005), monthdelta=MonthDelta(42))

>>> parsers.time('13:15+05:10')
datetime.time(13, 15, tzinfo=<TimezoneInfo(+5:10)>)

>>> parsers.date('1981-04-05')
datetime.date(1981, 4, 5)

>>> parsers.datetime('2007-08-09T12:30-02:00')
datetime.datetime(2007, 8, 9, 12, 30, tzinfo=<TimezoneInfo(-2:0)>)

>>> parsers.date('1981-095')
datetime.date(1981, 4, 5)

>>> parsers.date('2016-W43-1')
datetime.date(2016, 10, 24)

>>> from iso8601utils import validators
>>> validators.interval('1999-12-31T16:00:00.000+04:00/P5DT7H')
True
>>> validators.interval('23P7DT5H')
False
>>> validators.duration('P3Y6M4W7DT12H30M5S')
True
>>> validators.duration('23P7DT5H')
False
>>> validators.time('13:15+05:10')
True
>>> validators.date('1981-04-05')
True
>>> validators.date('1981-095')
True
>>> validators.date('1981-W43-1')
True
>>> validators.date('1981W43-1')
False

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

iso8601utils-0.1.0.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

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

iso8601utils-0.1.0-py2.py3-none-any.whl (8.9 kB view details)

Uploaded Python 2Python 3

File details

Details for the file iso8601utils-0.1.0.tar.gz.

File metadata

  • Download URL: iso8601utils-0.1.0.tar.gz
  • Upload date:
  • Size: 7.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for iso8601utils-0.1.0.tar.gz
Algorithm Hash digest
SHA256 3365e869ca6c2d8fdf68be8e4416be61875a7da3d3e522343dfef6700d6247bb
MD5 07f59a1e2ca79b7914a14ad2f093838e
BLAKE2b-256 19098031c44001e1a4ed3854d9f1562c6bc7479db180326293e289ba80aedaa9

See more details on using hashes here.

File details

Details for the file iso8601utils-0.1.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for iso8601utils-0.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 fb24f7b265b2db5e2c2991662bd9bec5b4c0ef93cce8a180a6423b9a210511a6
MD5 11769f4e13b11ec57888fca6788e694e
BLAKE2b-256 80f92281d65c634cdef07065df13b1e44e446355c690c9469a88411cdf4f6320

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