"""JSON encoder that converts datetime and date objects.""" import datetime from json import JSONEncoder def utc_format(date): """Convert datetime to utc string.""" return date.isoformat() def utc_format_with_z(date): """Convert datetime to utc string.""" return utc_format(date) + ".000Z" class Encoder(JSONEncoder): """Encoder class to convert datetime and date objects.""" def default(self, obj): """Return a default encoder method implementation.""" if isinstance(obj, datetime.datetime): return utc_format_with_z(obj) if isinstance(obj, datetime.date): return utc_format(obj) return JSONEncoder.default(self, obj)