Source code for aleph.toolkit.timestamp
import datetime as dt
from typing import Optional, Union
[docs]
def timestamp_to_datetime(timestamp: float) -> dt.datetime:
"""
Utility function that transforms a UNIX timestamp into a UTC-localized datetime
object.
"""
return dt.datetime.fromtimestamp(timestamp, dt.timezone.utc)
[docs]
def coerce_to_datetime(
datetime_or_timestamp: Optional[Union[float, dt.datetime]],
) -> Optional[dt.datetime]:
# None for datetimes or 0 for timestamps results in returning None
if datetime_or_timestamp is None or not datetime_or_timestamp:
return None
if isinstance(datetime_or_timestamp, dt.datetime):
return datetime_or_timestamp
return timestamp_to_datetime(datetime_or_timestamp)
[docs]
def utc_now() -> dt.datetime:
"""
Returns the current time as a UTC-localized datetime object.
This differs from datetime.utcnow() because `utcnow()` is not localized.
"""
return dt.datetime.now(dt.timezone.utc)