我想输出一个python datetime对象(并在django中使用结果),如下所示:
Thu the 2nd at 4:30
但是我发现在python中没有办法输出st
、nd
、rd
或th
,就像我可以使用PHP日期时间格式和S
字符串(他们称之为“英语序数后缀”)(http://uk.php.net/manual/en/function.date.php)一样。
在django/python中是否有内置的方法来实现这一点?strftime
还不够好(http://docs.python.org/library/datetime.html#strftime-strptime-behavior)。
Django有一个过滤器,可以做我想做的事情,但是我想要一个函数,而不是过滤器,来做我想做的事情。
6条答案
按热度按时间rqdpfwrv1#
django.utils.dateformat有一个函数
format
,该函数有两个参数,第一个参数是日期(一个datetime.date
或datetime.datetime
示例,其中datetime
是Python标准库中的模块),第二个是格式字符串,并返回结果的格式化字符串。大写的-S
项(当然,如果是格式字符串的一部分)是一个扩展为“st”、“nd”、“rd”或“th”中适当的一个的字符串,具体取决于所讨论的日期的日期。kyxcudwk2#
不知道内置的,但是我用了这个...
以及:
dtStylish可以按如下方式调用以获取
Thu the 2nd at 4:30
。在您要放置月份中的日期的位置使用{th}
(“%d”python格式代码)9cbw7uwe3#
只需使用人性化库即可完成此操作
ordinal(2)
然后您可以给予序数任意整数,即
ordinal(2)
将返回2nd
nszi6y054#
我刚刚编写了一个小函数,在我自己的代码中解决了同样的问题:
o4hqfura5#
我自己的版本。使用python的strftime格式代码,在你想看到序数后缀的地方替换为
{th}
。或
bogh5gae6#
下面的解决方案我得到了上面的问题: