本文概述
在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_literals
from django.shortcuts import render
# Import Datetime
from datetime import datetime
def index(request):
# return HttpResponse("<h1>Hello, world !</h1>")
# Some Date Object, for example a default generated by datetime
myDate = 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 date
return render(request, 'pages/index.html', {
'date': formatedDate
})
在模板中
如果你愿意在模板中而不是在视图(控制器)中格式化字符串, 则可以使用过滤器(即日期)进行格式化。以下视图(控制器)将日期对象返回到一个简单的模板, 该模板将打印从视图发送的日期:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
# Import Datetime class
from datetime import datetime
def index(request):
# Some Date Object, for example a default generated by datetime
myDate = datetime.now()
# Render Some Template with a parameter accesible as date
return 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' }}
编码愉快!
评论前必须登录!
注册