如何在Django中的视图和模板中格式化日期时间对象

本文概述

  • 日期格式
  • 在视图中
  • 在模板中
在Django中使用日期? Python的datetime模块提供了用于轻松操纵日期和时间的类。你可以使用strftime方法格式化Python的任何日期(只要它是datetime对象)。
日期格式datetime对象将具有strftime方法, 该方法允许你为日期提供自定义格式, 并在需要的地方将其打印为字符串。你可以使用以下标识符指定日期的每个部分的呈现方式和位置:
格式字符串 描述
%a 语言环境的缩写工作日名称。
%A 语言环境的完整工作日名称。
%b 语言环境的缩写月份名称。
%B 语言环境的完整月份名称。
%c 语言环境的适当日期和时间表示。
%d 以十进制数[01, 31]表示的月份中的一天。
%H 小时(24小时制), 为十进制数字[00, 23]。
%I 小时(12小时制)为十进制数字[01, 12]。
%j 一年中的天, 以十进制数字[001, 366]为准。
%m 以十进制数字[01, 12]表示的月份。
%M 以十进制数字表示[00, 59]。
%p 区域设置等效于AM或PM。
%S 第二个十进制数字[00, 61]。
%U 一年中的周号(星期日为一周的第一天), 以十进制数[00, 53]。在第一个星期日之前的新的一年中的所有天都被视为在第0周。
%w 工作日为十进制数字[0(Sunday), 6]。
%W 一年中的星期数(星期一为星期的第一天), 以十进制数[00, 53]。第一个星期一之前的新的一年中的所有天均视为在第0周。
%x 语言环境的适当日期表示形式。
%X 语言环境的适当时间表示形式。
%y 没有世纪的年份作为十进制数字[00, 99]。
%Y 以世纪作为十进制数字的年份。
%Z 时区名称(如果不存在时区, 则没有字符)。
%% 文字” %” 字符。
在视图中在控制器内, 你可以直接访问datetime对象。这意味着你可以简单地执行strftime函数, 并将格式字符串作为第一个参数传递:
# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.shortcuts import render# Import Datetimefrom datetime import datetimedef index(request):# return HttpResponse("< h1> Hello, world !< /h1> ")# Some Date Object, for example a default generated by datetimemyDate = datetime.now()# Give a format to the date# Displays something like: Aug. 27, 2017, 2:57 p.m.formatedDate = myDate.strftime("%Y-%m-%d %H:%M:%S")# Do something with the formatted datereturn render(request, 'pages/index.html', {'date': formatedDate})

在模板中如果你愿意在模板中而不是在视图(控制器)中格式化字符串, 则可以使用过滤器(即日期)进行格式化。以下视图(控制器)将日期对象返回到一个简单的模板, 该模板将打印从视图发送的日期:
# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.shortcuts import render# Import Datetime classfrom datetime import datetimedef index(request):# Some Date Object, for example a default generated by datetimemyDate = datetime.now()# Render Some Template with a parameter accesible as datereturn render(request, 'pages/index.html', {'myDate': myDate})

以下模板(index.html)的内容将使用以下代码来格式化Providen Date对象:
Prints something like:Aug. 27, 2017, 2:57 p.m.{{ myDate|date:'Y-m-d H:i' }}

【如何在Django中的视图和模板中格式化日期时间对象】编码愉快!

    推荐阅读