在这里澄清一下,需要冒号的是时区偏移量,即上例中的2009-11-29T14:33:59-0600应该是2009-11-29T14:33:59-06:00,以符合W3C指南。
看django/utils/dateformat.py的代码:
def O(self):
"Difference to Greenwich time in hours; e.g. '+0200'"
seconds = self.Z()
return u"%+03d%02d" % (seconds // 3600, (seconds // 60) % 60)
您可以编辑 您的本地 django 副本 以添加 ':' 这样; return u"%+03d:%02d" % (seconds // 3600, (seconds // 60) % 60) 或创建您自己的模板标签来有效地做同样的事情。但可能最简单的方法是在视图中组合字符串,并将其作为变量传递给模板。
HTML5 版本的时区似乎不是开箱即用的。
[更新]
经过反思,您可能会这样做;
>>> from django.utils import dateformat
>>> fmt = "Y-m-d\TH:i:sO"
>>> import datetime
>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2009, 12, 1, 12, 39, 48, 655867)
>>> str = dateformat.format(now, fmt)
>>> print str
2009-12-01T12:39:48+0000
>>>
然后加上':'
>>> s = str[:-2] + ':' + str[-2:]
>>> s
u'2009-12-01T12:39:48+00:00'
>>>