1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
from __future__ import annotations
import datetime
from functools import lru_cache
import ciso8601
import dateutil.parser
@lru_cache(maxsize=512)
def epoch_to_datetime(epoch: str | float) -> datetime.datetime:
"""Convert epoch to datetime."""
return datetime.datetime.fromtimestamp(float(epoch) / 1000.0)
def parse_datetime(datetime_string: str) -> datetime.datetime:
"""Parse a datetime string."""
try:
return ciso8601.parse_datetime(datetime_string)
except ValueError:
return dateutil.parser.parse(datetime_string)
|