gpt4 book ai didi

python - 有没有办法从 Python 的日期时间获取 Django 的默认日期和时间字符串?

转载 作者:太空宇宙 更新时间:2023-11-03 12:50:32 26 4
gpt4 key购买 nike

我注意到 Django 的默认日期时间作为字符串看起来像这样(来自模板):

April 4, 2012, 6 a.m.
April 14, 2012, 12:06 p.m.
April 14, 2012, midnight
April 14, 2012, noon
April 14, 2012, 6:02 a.m.

注意日期或时间中没有尾随零。 Django 还消除了 :00 分钟,并使用字符串“中午”和“午夜”代替等效的数字时间。

如果不编写一堆 if-elif 语句,我能得到的最接近的是这个

# I'm using Django 1.4 with timezone support.
# timezone.now() is the same as `datetime.now()` but it's timezone "aware".
timezone.now().strftime('%B %d, %Y, %I:%M %p').replace( 'AM', 'a.m.' ).replace( 'PM', 'p.m.' )

但这会产生以下结果(使用上面的相同示例)

April 04, 2012, 06:00 a.m.
April 14, 2012, 12:06 p.m.
April 14, 2012, 12:00 a.m.
April 14, 2012, 12:00 p.m.
April 14, 2012, 06:02 a.m.

我需要获取字符串的原因是因为我使用的是 ajax(特别是 Dajax)所以我必须返回 datetime 的字符串,因为我不能将 Python 对象存储在 JSON 中(即使我可以,JavaScript 也不知道如何解释它)。

那么是否有某种 Django 函数可以将 datetime 转换为 Django 模板使用的相同字符串?

最佳答案

使用 Steven 链接到的 django.utils.dateformat:

>>> import datetime
>>> from django.utils import dateformat
>>> dateformat.format(datetime.datetime.now(), 'F j, Y, P')
u'April 14, 2012, 1:31 p.m.'

Pstrftime 的有趣扩展,在 line 93 上:

Time, in 12-hour hours, minutes and 'a.m.'/'p.m.', with minutes left offif they're zero and the strings 'midnight' and 'noon' if appropriate.Examples: '1 a.m.', '1:30 p.m.', 'midnight', 'noon', '12:30 p.m.'Proprietary extension.

关于python - 有没有办法从 Python 的日期时间获取 Django 的默认日期和时间字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com