views.py中编写如下代码(需要import的东西自己补充):
def utc_to_local(utc_dt):
local_tz = pytz.timezone(settings.TIME_ZONE)
local_format = "%Y-%m-%d %H:%M:%S"
local_dt = utc_dt.replace(tzinfo=pytz.utc).astimezone(local_tz)
return local_dt.strftime(local_format)
class DateEncoder(json.JSONEncoder):
def default(self, obj):
if isinstance(obj, datetime.datetime):
if settings.USE_TZ:
return utc_to_local(obj)
else:
return obj.strftime("%Y-%m-%d %H:%M:%S")
else:
return json.JSONEncoder.default(self, obj)
调用的地方
return HttpResponse(json.dumps(response, cls=views.DateEncoder))
1、json序列化datetime.datetime
2、数据库UTC时间转为本地时间;见def utc_to_local(utc_dt)
本文介绍如何在Python中将数据库的UTC时间转换为本地时间,并使用自定义的DateEncoder进行JSON序列化,适用于跨时区的时间显示需求。

599

被折叠的 条评论
为什么被折叠?



