Django defaultfilters.date不是时区感知

时间:2014-02-26 18:52:12

标签: python django datetime django-filter django-timezone

我正在尝试为django admin list_display创建一个定义,但日期过滤器不支持时区。如果我在list_display中只有updated_date字段,则时间是正确的。

def get_edited_by(self):
    return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name,
           defaultfilters.date(self.updated_date, 'SHORT_DATETIME_FORMAT'))

输出为:Bob Bobson - 26.02.2014 18:27(关闭一小时)

updated_date的输出为:26. februar 2014 19:27(正确)

任何人都知道如何让defaultfilters.date时区知道吗?

编辑:

我的设置:

TIME_ZONE = 'Europe/Oslo'
USE_I18N = True
USE_L10N = True
USE_TZ = True

EDIT2:

pytz==2013.9 Django==1.6.2

编辑3:

试过这个

from django.utils.dateformat import DateFormat
def get_edited_by(self):
    return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name, DateFormat.format(self.updated_date, "SHORT_DATETIME_FORMAT"))

但是我收到了这个错误:unbound method format() must be called with DateFormat instance as first argument (got datetime instance instead)

编辑4:

from django.utils import date format
def get_edited_by(self):
    return u"%s %s - %s" % (self.edited_by.first_name, self.edited_by.last_name, dateformat.format(self.updated_date, 'SHORT_DATETIME_FORMAT'))

提供此输出:Bob Bobsen - th23+0100RCET_onsPMCETFebruarCET0FebFebruar_februar+0100RFebPMCET

0 个答案:

没有答案