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
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
|