From eb55b01be9fe1ca9b2d5c2bdfeaee04e34d6ad89 Mon Sep 17 00:00:00 2001 From: "alexandr.yagolovich" <2690736@gmail.com> Date: Wed, 28 Apr 2021 20:44:35 +0300 Subject: [PATCH] timezone serializer to coder.JsonEncoder for datetime.datetime instances --- fastapi_cache/coder.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fastapi_cache/coder.py b/fastapi_cache/coder.py index 9914b24..6534a2d 100644 --- a/fastapi_cache/coder.py +++ b/fastapi_cache/coder.py @@ -16,7 +16,10 @@ CONVERTERS = { class JsonEncoder(json.JSONEncoder): def default(self, obj): 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): return {"val": obj.strftime("%Y-%m-%d"), "_spec_type": "date"} elif isinstance(obj, Decimal):