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

dav*_*ode 3 python django datetime localization

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

Mar*_*ers 5

使用django.utils.formats模块:

from django.utils import formats
date_format = get_format('DATE_FORMAT')
Run Code Online (Sandbox Code Playgroud)

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'
Run Code Online (Sandbox Code Playgroud)

查看可用的日期格式字符串以查看各种字符串的含义.

或者,使用包含JavaScript 函数的javascript目录视图get_format().

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

  • 使用这个Django片段. strfdate()方法添加到Date识别Django格式的JavaScript 原型中,或者

  • 安装django-missing库,其中包含上述代码段的更新版本作为可随时包含的JS库.

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