Django - 使用 strftime 返回德国日期
Django - returning German date with strftime
我有这个代码:
date = program.last_registration_date.strftime('%d %B %Y, %H:%M')
program
是我的模型,last_registration_date
是 DateTimeField
的正常值
现在我的问题是日期 returns 是我不想要的英文日期。在我的 default.py
中,我已正确设置 TIME_ZONE ('Europe/Berlin'),我的 LANGUAGE_CODE ('de') 和 ofc USE_L1ON 设置为 True .但它仍然不是德语。
我尝试导入区域设置并在导入后使用 setlocale,但这也行不通(只是向我显示一个错误,区域设置不受支持)。
所以,谁能帮我把这个日期变成德语?
确保您在 Django 项目中正确配置了 settings
和 formats
。示例项目的结构:
.
|-- README.md
|-- demo.db
|-- demo_time_set
| |-- __init__.py
| |-- demo.db
| |-- formats
| | |-- __init__.py
| | `-- en
| | |-- __init__.py
| | `-- formats.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|-- manage.py
|-- requirments.txt
`-- some_app
|-- __init__.py
|-- admin.py
`-- models.py
您只需提供具有适当名称的目录并在其中 formats.py 即可为多种语言定义它。
formats.py
的所有 MAGIC 发生的示例内容如下所示:
# HERE FORMATING AS shown in:
# LIST: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
DATE_FORMAT = 'd-m-Y'
TIME_FORMAT = 'H:i'
DATETIME_FORMAT = 'd-m-Y H:i'
YEAR_MONTH_FORMAT = 'F Y'
MONTH_DAY_FORMAT = 'F j'
SHORT_DATE_FORMAT = 'm/d/Y'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
FIRST_DAY_OF_WEEK = 1
# BUT here use the Python strftime format syntax,
# LIST: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
DATE_INPUT_FORMATS = (
'%d-%m-%Y', # '21-03-2014'
)
TIME_INPUT_FORMATS = (
'%H:%M:%S', # '17:59:59'
'%H:%M', # '17:59'
)
DATETIME_INPUT_FORMATS = (
'%d-%m-%Y %H:%M', # '21-03-2014 17:59'
)
DECIMAL_SEPARATOR = u'.'
THOUSAND_SEPARATOR = u','
NUMBER_GROUPING = 3
请注意评论中的两个链接,它们将引导您找到正确配置的列表,它们对于不同的部分是不同的!
在您的 settings.py
中添加:
FORMAT_MODULE_PATH = 'demo_time_set.formats'
[GITHUB] 这是一个完整的工作示例:https://github.com/andilab/demo_time_set
好的,所以我想通了,只是删除了 strftime
以使用:
date = date_format(program.last_registration_date)
这对我来说没有问题。
我有这个代码:
date = program.last_registration_date.strftime('%d %B %Y, %H:%M')
program
是我的模型,last_registration_date
是 DateTimeField
现在我的问题是日期 returns 是我不想要的英文日期。在我的 default.py
中,我已正确设置 TIME_ZONE ('Europe/Berlin'),我的 LANGUAGE_CODE ('de') 和 ofc USE_L1ON 设置为 True .但它仍然不是德语。
我尝试导入区域设置并在导入后使用 setlocale,但这也行不通(只是向我显示一个错误,区域设置不受支持)。
所以,谁能帮我把这个日期变成德语?
确保您在 Django 项目中正确配置了 settings
和 formats
。示例项目的结构:
.
|-- README.md
|-- demo.db
|-- demo_time_set
| |-- __init__.py
| |-- demo.db
| |-- formats
| | |-- __init__.py
| | `-- en
| | |-- __init__.py
| | `-- formats.py
| |-- settings.py
| |-- urls.py
| `-- wsgi.py
|-- manage.py
|-- requirments.txt
`-- some_app
|-- __init__.py
|-- admin.py
`-- models.py
您只需提供具有适当名称的目录并在其中 formats.py 即可为多种语言定义它。
formats.py
的所有 MAGIC 发生的示例内容如下所示:
# HERE FORMATING AS shown in:
# LIST: https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date
DATE_FORMAT = 'd-m-Y'
TIME_FORMAT = 'H:i'
DATETIME_FORMAT = 'd-m-Y H:i'
YEAR_MONTH_FORMAT = 'F Y'
MONTH_DAY_FORMAT = 'F j'
SHORT_DATE_FORMAT = 'm/d/Y'
SHORT_DATETIME_FORMAT = 'm/d/Y P'
FIRST_DAY_OF_WEEK = 1
# BUT here use the Python strftime format syntax,
# LIST: http://docs.python.org/library/datetime.html#strftime-strptime-behavior
DATE_INPUT_FORMATS = (
'%d-%m-%Y', # '21-03-2014'
)
TIME_INPUT_FORMATS = (
'%H:%M:%S', # '17:59:59'
'%H:%M', # '17:59'
)
DATETIME_INPUT_FORMATS = (
'%d-%m-%Y %H:%M', # '21-03-2014 17:59'
)
DECIMAL_SEPARATOR = u'.'
THOUSAND_SEPARATOR = u','
NUMBER_GROUPING = 3
请注意评论中的两个链接,它们将引导您找到正确配置的列表,它们对于不同的部分是不同的!
在您的 settings.py
中添加:
FORMAT_MODULE_PATH = 'demo_time_set.formats'
[GITHUB] 这是一个完整的工作示例:https://github.com/andilab/demo_time_set
好的,所以我想通了,只是删除了 strftime
以使用:
date = date_format(program.last_registration_date)
这对我来说没有问题。