You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django 1.11中date_format返回乱码,如何排查解决?

Django 1.11 date_format 乱码问题解决

问题出在你传递给date_format的参数上:你传入的是字符串字面量'NUMERICAL_DATE_FORMAT',而不是这个配置变量本身。

Django的date_format函数第二个参数如果是字符串,会直接把它当作日期格式模板来解析,而不是去读取你在格式模块中定义的配置项。当你传入'NUMERICAL_DATE_FORMAT'时,函数会把字符串里的每个字符当作日期占位符处理(比如N对应月份全称、U对应时间戳、M对应月份缩写等),最终拼接出你看到的乱码内容。

正确的解决方式

方式一:直接传入格式字符串

如果你明确要使用d.m.Y格式,直接把这个字符串传给date_format即可:

from django.utils.formats import date_format
date_format(date, 'd.m.Y')

方式二:导入配置变量传入

如果你想复用在格式模块中定义的NUMERICAL_DATE_FORMAT,需要从settings中导入这个变量再传递:

from django.conf import settings
from django.utils.formats import date_format
date_format(date, settings.NUMERICAL_DATE_FORMAT)

额外确认

确保你的FORMAT_MODULE_PATH配置正确,比如在项目settings.py中:

FORMAT_MODULE_PATH = [
    'your_project_name.formats',
]

然后在对应语言的格式文件(比如your_project_name/formats/ro/formats.py,对应罗马尼亚语时区)中确实定义了:

NUMERICAL_DATE_FORMAT = 'd.m.Y'

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:03:28