Source code for opyenxes.utils.XsDateTimeConversion

from datetime import datetime, timedelta, timezone


[docs]def parse_date_time(date_time): """Transform the date in string format to datetime format :param date_time: The date in string format :type date_time: str :return: The date in datetime format :rtype: datetime """ try: value = date_time relative_zone = "" if "Z" in value: value = value.replace("Z", "") relative_zone = "Z" elif "+" in value: relative_zone = value[value.index("+"):] value = value[:value.index("+")] elif "-" in value[::-1][:7]: value = value[::-1] relative_zone = value[:value.index("-") + 1] value = value[value.index("-") + 1:] relative_zone = relative_zone[::-1] value = value[::-1] if relative_zone != "Z" and relative_zone != "": hours, minute = relative_zone.split(":") if "-" in hours: minute = int(minute) * -1 else: hours = 0 minute = 0 if '.' in value: time = datetime.strptime(value, "%Y-%m-%dT%H:%M:%S.%f") else: time = datetime.strptime(value, "%Y-%m-%dT%H:%M:%S") time = time.replace(tzinfo=timezone(timedelta(minutes=int(minute), hours=int(hours)))) return time except ValueError: print("\"" + date_time + "\" is not a valid representation of a XES timestamp.") return None