Django/Python - 以文字而非数字显示月份

0 投票
2 回答
3797 浏览
提问于 2025-04-17 18:54

我遇到一个小问题,就是想把月份用文字显示,而不是用数字。现在我的博客显示的是“13-03-2013”,但我想要的格式是“13-March-2013”。

这是我目前为止所做的事情:我在我的模型里添加了日期:

pub_date = models.DateTimeField("Gepubliceerd", auto_now_add=True)

当我在博客模板中调用变量pub_date时,它显示的是数字格式(13-03-2013)。

有没有简单的方法可以把数字转换成实际的月份名称?我在考虑创建一个包含每个月名称的元组,然后检查pub_date中的月份数字,根据这个数字来使用元组中的正确月份。

但我总觉得应该有更简单的方法。不过到目前为止,我还没有找到其他的解决方案。

希望有一些厉害的人能分享他们的经验!

提前谢谢大家!

2 个回答

1

经过进一步的研究,我发现了一些新的信息(其实我应该在提问之前就先做这些研究)。

{{ pub_date|date:'d-m-Y' }}

这是我调用日期的方式。在这个过程中,你可以使用Django自带的日期格式进行调整。如果你把'm'改成大写的'M',那么它就会用字母显示月份。不过,还有很多其他的可能性,可以在这里找到详细的解释:

点击这里了解Django的日期格式

再次为我提问太快而感到抱歉。

8

你应该使用Django提供的模板过滤器date。想知道怎么用的话,可以查看这份文档

如果你只想在这个地方使用这个日期格式,可以直接使用

{{ pub_date|date:'d-F-Y' }

如果你想在所有地方都使用这个默认格式,可以设置DATE_FORMATSHORT_DATE_FORMAT。想了解更多信息,可以看看文档。

撰写回答