如何格式化 django 模板中的 dateTime?

那就是:

{{ wpis.entry.lastChangeDate|date:"D d M Y" }}

给了我(为什么?) :

2009-07-24 21:45:38.986156

我不知道怎么跳过分数部分..。

在我的模型中,我有:

addedDate = models.DateTimeField(default=datetime.now)
129301 次浏览

我怀疑在到达模板之前,wpis.entry.lastChangeDate已经以某种方式转换为视图中的字符串。

为了验证这个假设,您可以检查视图是否具有某些只有字符串才具有的属性/方法——例如 wpis.entry.lastChangeDate.upper,然后查看模板是否崩溃。

您还可以创建自己的 自定义过滤器,并将其用于调试目的,让它检查对象,并将检查结果写到页面上,或者仅仅写到控制台上。它将能够检查对象,并检查它是否真的是一个 DateTimeField。

另外,为什么不使用 models.DateTimeField( auto_now_add =True)来设置创建时的日期时间呢?

你可以用这个:

addedDate = datetime.now().replace(microsecond=0)

这正是你想要的,试试这个:

\{\{ wpis.entry.lastChangeDate|date:'Y-m-d H:i' }}

\{\{ wpis.entry.lastChangeDate|date:"SHORT_DATETIME_FORMAT" }}
用您希望使用的日期和/或时间格式替换 SHORT _ DATETIME _ FORMAT

下面是 Django 模板中可用的日期和时间格式列表: Https://docs.djangoproject.com/en/4.0/ref/templates/builtins/#date Https://docs.djangoproject.com/en/4.0/ref/templates/builtins/#time

确保过滤器应用于正确的字段。