在Django中实现国际化日期和时间格式
在Django中,可以通过设置LANGUAGE_CODE
和TIME_ZONE
以及使用gettext()
等函数实现国际化日期和时间格式。
- 设置
LANGUAGE_CODE
和TIME_ZONE
在settings.py
中,设置LANGUAGE_CODE
和TIME_ZONE
,如下所示:
LANGUAGE_CODE = 'zh-hans' # 中文简体 ... TIME_ZONE = 'Asia/Shanghai' # 上海时区
- 使用
gettext()
等函数翻译日期和时间格式
在Django中,可以使用gettext()
函数翻译日期和时间格式。首先,在views.py
中引入django.utils.translation
:
from django.utils.translation import gettext as _
然后,使用_()
函数翻译日期和时间格式,如下所示:
date_format = _('Y-m-d') # 日期格式 time_format = _('H:i:s') # 时间格式 datetime_format = _('Y-m-d H:i:s') # 日期时间格式
- 在模板中使用国际化日期和时间格式
在Django模板中,可以使用date
和time
等过滤器对日期和时间格式化,如下所示:
{{ my_datetime|date:_('Y-m-d H:i:s') }} <!-- 以国际化日期时间格式显示 --> {{ my_date|date:_('Y年m月d日') }} <!-- 以国际化日期格式显示 --> {{ my_time|time:_('H:i:s') }} <!-- 以国际化时间格式显示 -->
- 示例代码
下面的代码演示了如何通过Django实现国际化日期和时间格式:
# settings.py LANGUAGE_CODE = 'zh-hans' # 中文简体 TIME_ZONE = 'Asia/Shanghai' # 上海时区 # views.py from django.utils.translation import gettext as _ def my_view(request): # 获取当前日期时间 my_datetime = datetime.now() # 翻译日期和时间格式 date_format = _('Y-m-d') time_format = _('H:i:s') datetime_format = _('Y-m-d H:i:s') # 返回渲染后的模板 return render(request, 'my_template.html', {'my_datetime': my_datetime, 'date_format': date_format, 'time_format': time_format, 'datetime_format': datetime_format}) # my_template.html <p>当前日期时间:{{ my_datetime }}</p> <p>日期时间格式:{{ my_datetime|date:datetime_format }}</p> <p>日期格式:{{ my_datetime|date:date_format }}</p> <p>时间格式:{{ my_datetime|time:time_format }}</p>
在上述代码中,my_view()
函数获取当前日期时间,并使用_()
函数翻译日期和时间格式。在模板中,使用date
和time
等过滤器对日期和时间进行格式化,并根据翻译后的日期和时间格式进行显示。
相关文章