Correctly encode aware, non-UTC datetime objects

http_date() requires timetuple in UTC, but JSONEncoder.default() was
passing a local timetuple instead.
This commit is contained in:
Eugene M. Kim 2017-06-14 11:12:11 -07:00
parent d75d83defd
commit d41e2e6a5d
2 changed files with 5 additions and 1 deletions

View file

@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import io
import uuid
from datetime import date
from datetime import date, datetime
from flask.globals import current_app, request
from flask._compat import text_type, PY2
@ -62,6 +62,8 @@ class JSONEncoder(_json.JSONEncoder):
return list(iterable)
return JSONEncoder.default(self, o)
"""
if isinstance(o, datetime):
return http_date(o.utctimetuple())
if isinstance(o, date):
return http_date(o.timetuple())
if isinstance(o, uuid.UUID):