就在我以为自己已经完成了国际化和时区的学习,终于可以继续学习更有趣的功能的时候,最后一次我被咬了。:)
在我的模板中,只要我有以下内容,模板就会自动将datetime从UTC转换为我当前选择的时区。我也可以切换到不同的文化(从美国到英国的格式),日期和时间格式也会相应地改变。简直完美。你知道吗
{% load l10n %}
{% for item in calls %}
<td>{{ item.conversation_datetime }}</td>
<td>{{ item.conversation_datetime }}</td>
{% endfor %}
现在我需要做的就是提取前者的本地化日期和后者的本地化时间。所以我想,让我们砰的一个模板标签在那里,生活是美好的。你知道吗
{% load l10n %}
{% for item in calls %}
<td>{{ item.conversation_datetime|date }}</td>
<td>{{ item.conversation_datetime|time }}</td>
{% endfor %}
但如果生活是美好的,我就不会坐在这里写这篇文章了,是吗?;) 在设置这些过滤器的那一刻,这两个字段的格式似乎已固定为美国文化。日期格式为mm/dd/yyyy,时间为12小时am/pm。你知道吗
像我以前那样成功地选择了英国语言已经没有任何效果了。你知道吗
事实上我已经超越了格式.py对于en
和en-gb
可以确认/格式.py具有对应于12小时am/pm的条目TIME_FORMAT = 'P'
。你知道吗
而英国/格式.py具有对应于24小时的TIME_FORMAT = 'G:i'
。
你认为在模板中使用过滤标签还有一点我忽略了吗?你知道吗
编辑:第二种方法是解决方案。另见下面的评论。你知道吗
文档中确实提到了您观察到的行为(参见date filter):
对于
time
过滤器也是如此。从文档中可以看到,您可以使用localize
过滤器强制本地化:或者,您可以传递要使用的设置(解决方案):
文件上说:
相关问题 更多 >
编程相关推荐