""" Timezone utilities Just UTC-awareness right now """ # Copyright (c) Jupyter Development Team. # Distributed under the terms of the Modified BSD License. from __future__ import annotations from datetime import datetime, timedelta, timezone, tzinfo # constant for zero offset ZERO = timedelta(0) class tzUTC(tzinfo): # noqa: N801 """tzinfo object for UTC (zero offset)""" def utcoffset(self, d: datetime | None) -> timedelta: """Compute utcoffset.""" return ZERO def dst(self, d: datetime | None) -> timedelta: """Compute dst.""" return ZERO def utcnow() -> datetime: """Return timezone-aware UTC timestamp""" return datetime.now(timezone.utc) def utcfromtimestamp(timestamp: float) -> datetime: return datetime.fromtimestamp(timestamp, timezone.utc) UTC = tzUTC() # type:ignore[abstract] def isoformat(dt: datetime) -> str: """Return iso-formatted timestamp Like .isoformat(), but uses Z for UTC instead of +00:00 """ return dt.isoformat().replace("+00:00", "Z")