import sys import dateutil.parser def errx(msg): sys.exit(f'quarg: {msg}') def parse_isodate(date): try: parsed = dateutil.parser.isoparse(date) except ValueError as err: errx(f'isoparse: invalid date format \'{date}\', {err}') except OverflowError as err: errx(f'isoparse: date overflows: \'{date}\'') # If no offset is given, assume local time if parsed.tzinfo is None: parsed = parsed.astimezone() return parsed