我发现了很多链接,但他们都要求提供日期格式。我不想要日期格式化,我想要当前语言的格式。而不是settings.LANGUAGE_CODE
,而是当前请求之一(我不明白为什么很多答案都基于settings.LANGUAGE_CODE
,因为如果用户想要更改语言,请使用settings.LANGUAGE_CODE
不会改变格式......)。
到目前为止,我发现的唯一解决方案是为我的模板制作自己的自定义标记,如下所示:
@register.filter(name='locale_date_format')
def locale_date_format(arg1):
"""
Returns the date format of the current locale
Use:
{{ request|locale_date_format }}
Args:
arg1: request
"""
# a will contain something like '%m/d%/%y' -> convert it for dateselector
a = formats.get_format('DATE_INPUT_FORMATS',
lang=arg1.LANGUAGE_CODE)[1]
for old, new in [('%y', 'YYYY'),
('%Y', 'YYYY'),
('%d', 'DD'),
('%m', 'MM'), ]:
a = a.replace(old, new)
return a
然后把它称之为:
{% load static i18n compress templates_extras %}
<html>
<head>
<script>
var globDateFormat = '{{ request|locale_date_format }}';
</script>
</head>
</html>
然后我在jQuery datetimepicker中使用它。恕我直言,就像拿一把大锤来破解坚果一样。还有其他方法我找不到吗?