就在我以为我已经完成了国际化和时区并且终于可以继续使用更有趣的功能时,我最后一次被咬了。:)
在我的模板中,只要我有以下内容,模板就会自动将日期时间从 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 小时。
像我之前成功选择的英国语言不再有任何效果。
事实上,我已经覆盖了formats.pyen
并且en-gb
可以确认en/format.py 具有TIME_FORMAT = 'P'
对应于上午/下午12 小时的条目。
而 en_GB/formats.pyTIME_FORMAT = 'G:i'
对应于 24 小时。您是否认为在我忽略的模板中使用过滤器标签还有其他意义?