File size: 1,057 Bytes
d1ceb73 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 |
"""
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")
|