获取给定语言环境的日期时间掩码

时间:2013-06-04 21:08:46

标签: python django datetime localization

如何获取当前在我的django应用程序中使用的语言环境的日期时间掩码(类似“dd/mm/yyyy HH:mm:ss”的字符串)? (我需要它来配置一个需要日期时间掩码作为参数的javascript组件,因为我有一个多语言站点我不能硬编码该掩码)

1 个答案:

答案 0 :(得分:5)

使用django.utils.formats module

from django.utils import formats
date_format = get_format('DATE_FORMAT')

get_format(format_type, lang=None, use_l10n=None)返回当前使用的格式;设置use_l10n以强制应用本地化(默认为settings.USE_L10N标志),或使用lang参数选择特定语言:

>>> from django.utils import formats
>>> formats.get_format('DATE_FORMAT')
'N j, Y'
>>> formats.get_format('DATE_FORMAT', lang='de')
'j. F Y'

请参阅available date format strings,了解各种字符串的含义。

或者,使用javascript catalog view,其中包含JavaScript get_format()函数。

无论哪种方式,Django格式都不是JS认可的格式。您有两种选择:

  • 使用this Django snippet. strfdate()方法添加到识别Django格式的JavaScript Date原型中,或

  • 将包含上述代码段的更新版本的django-missing library安装为可随时包含的JS库。

如果您需要与JS兼容的面具,则需要根据这两个.strfdate()示例自行进行翻译。