Source code for clp_ffi_py.utils

from datetime import datetime, tzinfo
from typing import Optional

import dateutil.tz


[docs] def get_formatted_timestamp(timestamp: int, timezone: Optional[tzinfo]) -> str: """ Gets the formatted timestamp string from the provided timestamp with the provided timezone using isoformat. :param timestamp: Timestamp to format. :param timezone: Timezone of timestamp parameter. If None is given, UTC is used by default. :return: String of formatted timestamp. """ if timezone is None: timezone = dateutil.tz.UTC dt: datetime = datetime.fromtimestamp(timestamp / 1000, timezone) return dt.isoformat(sep=" ", timespec="milliseconds")
[docs] def get_timezone_from_timezone_id(timezone_id: str) -> tzinfo: """ Gets the Python timezone object of the provided timezone id. :param timezone_id: Timezone Id. :return: Timezone object. :raises: RuntimeError The given timestamp ID is invalid. """ timezone: Optional[tzinfo] = dateutil.tz.gettz(timezone_id) if timezone is None: raise RuntimeError(f"Invalid timezone id: {timezone_id}") return timezone