import datetime import tzlocal from dateutil import tz from dateutil.parser import parse as date_parse def to_dateTime(datetime: datetime.datetime): """converts a datetime into json format for rest api""" if not datetime.tzinfo: datetime = datetime.astimezone() zone = tzlocal.get_localzone().zone datetime = datetime.isoformat(timespec="seconds") return {"timeZone": zone, "dateTime": datetime} def from_dateTime(dateTime): """converts to a datetime from json format returned by rest api""" timezone = tz.gettz(dateTime["timeZone"]) datetime = date_parse(dateTime["dateTime"]) datetime.replace(tzinfo=timezone) return datetime