You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

22 lines
681 B

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