将Django DateField格式化为ISO格式

时间:2010-03-22 15:16:53

标签: django date

我正在使用Django来提供一些XML。部分要求是我的日期格式如下:1969-12-31T18:33:28-06:00

如何以该格式在Django中输出DateField?

4 个答案:

答案 0 :(得分:24)

Django 1.2中的新功能,有一个模板标签可以输出您想要的内容:

{{ value|date:"c"}}

来自Django template documentation

  

c | ISO 8601格式| 2008-01-02T10:30:00.000123

从技术上讲,这更接近W3-DTF,但足够接近

答案 1 :(得分:7)

由于Django是用Python编写的,

http://docs.python.org/library/datetime.html#datetime.datetime.isoformat

datetime(2002, 12, 25, tzinfo=TZ()).isoformat()

答案 2 :(得分:5)

如果您在Django documentation中查看日期,您会看到支持各种日期格式。基本上在您需要的模板中:

{{ value|date:"some format string" }} 

其中格式字符串可以是上面页面上日期下定义的格式字符串之一,也可以是现在函数(包括ISO 8601格式)下定义的自定义格式字符串之一,该格式字符串也在链接到上面的页面上。我假设当你输出到xml时,你的方式与普通网页的模板类似。

更新(2014年8月)

正如Edgar R的另一个回答所示,从版本1.2开始,您现在可以使用内置开关使用格式字符串输出ISO 8601格式的日期:c

答案 3 :(得分:1)