Date, time and timezone utilities¶
-
coaster.utils.datetime.
parse_isoformat
(text, naive=True, delimiter='T')[source]¶ Attempts to parse an ISO 8601 timestamp as generated by datetime.isoformat(). Timestamps without a timezone are assumed to be at UTC. Raises
ParseError
if the timestamp cannot be parsed.Parameters: naive (bool) – If True, strips timezone and returns datetime at UTC.
-
coaster.utils.datetime.
isoweek_datetime
(year, week, timezone='UTC', naive=False)[source]¶ Returns a datetime matching the starting point of a specified ISO week in the specified timezone (default UTC). Returns a naive datetime in UTC if requested (default False).
>>> isoweek_datetime(2017, 1) datetime.datetime(2017, 1, 2, 0, 0, tzinfo=<UTC>) >>> isoweek_datetime(2017, 1, 'Asia/Kolkata') datetime.datetime(2017, 1, 1, 18, 30, tzinfo=<UTC>) >>> isoweek_datetime(2017, 1, 'Asia/Kolkata', naive=True) datetime.datetime(2017, 1, 1, 18, 30) >>> isoweek_datetime(2008, 1, 'Asia/Kolkata') datetime.datetime(2007, 12, 30, 18, 30, tzinfo=<UTC>)
-
coaster.utils.datetime.
midnight_to_utc
(dt, timezone=None, naive=False)[source]¶ Returns a UTC datetime matching the midnight for the given date or datetime.
>>> from datetime import date >>> midnight_to_utc(datetime(2017, 1, 1)) datetime.datetime(2017, 1, 1, 0, 0, tzinfo=<UTC>) >>> midnight_to_utc(pytz.timezone('Asia/Kolkata').localize(datetime(2017, 1, 1))) datetime.datetime(2016, 12, 31, 18, 30, tzinfo=<UTC>) >>> midnight_to_utc(datetime(2017, 1, 1), naive=True) datetime.datetime(2017, 1, 1, 0, 0) >>> midnight_to_utc(pytz.timezone('Asia/Kolkata').localize(datetime(2017, 1, 1)), ... naive=True) datetime.datetime(2016, 12, 31, 18, 30) >>> midnight_to_utc(date(2017, 1, 1)) datetime.datetime(2017, 1, 1, 0, 0, tzinfo=<UTC>) >>> midnight_to_utc(date(2017, 1, 1), naive=True) datetime.datetime(2017, 1, 1, 0, 0) >>> midnight_to_utc(date(2017, 1, 1), timezone='Asia/Kolkata') datetime.datetime(2016, 12, 31, 18, 30, tzinfo=<UTC>) >>> midnight_to_utc(datetime(2017, 1, 1), timezone='Asia/Kolkata') datetime.datetime(2016, 12, 31, 18, 30, tzinfo=<UTC>) >>> midnight_to_utc(pytz.timezone('Asia/Kolkata').localize(datetime(2017, 1, 1)), ... timezone='UTC') datetime.datetime(2017, 1, 1, 0, 0, tzinfo=<UTC>)
-
coaster.utils.datetime.
sorted_timezones
()[source]¶ Return a list of timezones sorted by offset from UTC.
-
coaster.utils.datetime.
ParseError
¶ alias of
aniso8601.exceptions.ISOFormatError