18 lines
506 B
Python
18 lines
506 B
Python
import datetime
|
|
import sys
|
|
|
|
if sys.version_info < (3, 7):
|
|
from backports.datetime_fromisoformat import MonkeyPatch
|
|
|
|
MonkeyPatch.patch_fromisoformat()
|
|
|
|
|
|
def from_iso_format(date_str):
|
|
"""Z-suffix aware version of `datetime.datetime.fromisoformat`"""
|
|
if not date_str:
|
|
return None
|
|
time = datetime.datetime.fromisoformat(date_str.replace("Z", "+00:00"))
|
|
if time.tzinfo:
|
|
return time.astimezone(datetime.timezone.utc)
|
|
return time.replace(tzinfo=datetime.timezone.utc)
|