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

如何在Django中正确格式化显示DateTime字段的日期时间?

Django DateTimeField 格式化显示完整日期时间

你在模型中定义的date_added = models.DateTimeField(auto_now_add=True)已经正确记录了上传的完整日期时间,只是模板默认显示格式未输出全部时间信息。以下几种方法可实现月、日、年、时、分、秒的格式显示:

方法一:使用模板date过滤器(推荐)

直接在模板中对date_added应用date过滤器,指定目标格式:

{% block content %}
<div class="container">
<tr>
    <td>
        CAR LIST
    </td>
    <td>
        Date Added
    </td>
</tr>

{% for car in cars %}
<tr>
    <td><a href="{% url 'show-car' car.car_id %}">{{ car }}</a></td>
    <td>{{ car.date_added|date:"m/d/Y H:i:s" }}</td>
</tr>
{% endfor %}
</div>
{% endblock %}

格式符号说明:

  • m: 两位数字月份(01-12)
  • d: 两位数字日期(01-31)
  • Y: 四位数字年份(如2024)
  • H: 24小时制小时数(00-23)
  • i: 两位数字分钟(00-59)
  • s: 两位数字秒数(00-59)

若需12小时制带AM/PM标识,可改用格式"m/d/Y h:i:s A"。

方法二:在模型中定义格式化方法

在Car模型中添加自定义方法,返回格式化后的日期时间:

# models.py
class Car(models.Model):
    # 其他字段...
    date_added = models.DateTimeField(auto_now_add=True)

    def get_formatted_date(self):
        return self.date_added.strftime("%m/%d/%Y %H:%M:%S")

随后在模板中调用该方法:

<td>{{ car.get_formatted_date }}</td>

方法三:全局设置默认日期时间格式

若希望项目中所有DateTimeField统一使用该格式,修改settings.py配置:

# settings.py
DATETIME_FORMAT = "m/d/Y H:i:s"
USE_L10N = False  # 关闭本地化,确保自定义格式生效

修改后,模板中直接写{{ car.date_added }}即可自动应用该格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 09:30:45