日期格式化为:星期一, 3月1日

0 投票
2 回答
1808 浏览
提问于 2025-04-16 02:39

这看起来应该很简单,但让我感到非常困扰。我查阅了Python的日期格式字符串,但还是不太明白。

我想要实现的是:<完整的星期几>, <月份中的日期><序数词> <月份名称>

其中,<序数词>stndrdth 等,具体取决于日期。

2 个回答

4

我刚在文档里找到了答案。真不知道为什么在每个提到日期格式的地方都没有链接到这个。

{{e.when|date:"l, jS F"}}

在模板之外:

from django.utils import dateformat
dateformat.format(datetime.now(), 'l, jS F')
5

更新 2: 看来提问者最终觉得这个有用 :)

更新: 别在意了。提问者其实是在找 Django 的日期格式化,而不是 Python 的。

据我所知,没有内置的格式说明符可以用来表示序数(比如“第1”、“第2”)。其他的格式化方式比较简单:

my_date.strftime('%A, %d %B')

我在网上找到过 这个解决方案

if 4 <= day <= 20 or 24 <= day <= 30:
    suffix = "th"
else:
    suffix = ["st", "nd", "rd"][day % 10 - 1]

撰写回答