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

IPr*_*ory 50 django django-models

那:

{{ wpis.entry.lastChangeDate|date:"D d M Y" }}
Run Code Online (Sandbox Code Playgroud)

给我(为什么?):

2009-07-24 21:45:38.986156 
Run Code Online (Sandbox Code Playgroud)

我不知道如何跳过分数部分......

在我的模型中,我有:

addedDate = models.DateTimeField(default=datetime.now)
Run Code Online (Sandbox Code Playgroud)

Roc*_*ech 148

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

{{ wpis.entry.lastChangeDate|date:'Y-m-d H:i' }}
Run Code Online (Sandbox Code Playgroud)

  • 所有可用格式选项的详细信息都是Django文档:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date (31认同)

rob*_*rob 5

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

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

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

在一个无关的通知中,您为什么不使用在创建时设置日期时间?models.DateTimeField(auto_now_add=True)


Coc*_* B. 5

你可以用这个:

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