timezone serializer to coder.JsonEncoder for datetime.datetime instances

This commit is contained in:
alexandr.yagolovich
2021-04-28 20:44:35 +03:00
parent 8573eeace6
commit eb55b01be9

View File

@@ -16,7 +16,10 @@ CONVERTERS = {
class JsonEncoder(json.JSONEncoder): class JsonEncoder(json.JSONEncoder):
def default(self, obj): def default(self, obj):
if isinstance(obj, datetime.datetime): if isinstance(obj, datetime.datetime):
return {"val": obj.strftime("%Y-%m-%d %H:%M:%S"), "_spec_type": "datetime"} if obj.tzinfo:
return {"val": obj.strftime("%Y-%m-%d %H:%M:%S%z"), "_spec_type": "datetime"}
else:
return {"val": obj.strftime("%Y-%m-%d %H:%M:%S"), "_spec_type": "datetime"}
elif isinstance(obj, datetime.date): elif isinstance(obj, datetime.date):
return {"val": obj.strftime("%Y-%m-%d"), "_spec_type": "date"} return {"val": obj.strftime("%Y-%m-%d"), "_spec_type": "date"}
elif isinstance(obj, Decimal): elif isinstance(obj, Decimal):