【发布时间】:2013-12-07 05:42:58
【问题描述】:
我有一个模型,其中有一个 DateTimeField。
class Event(models.Model):
.....
date = models.DateTimeField()
以及本次活动的模板
class EventForm(ModelForm):
class Meta:
model= Event
当我从管理员创建事件时,我将时间设置为我希望事件发生的时间,比如 19:30。但是,如果我调用 events.date 属性,我会得到
event.date
datetime.datetime(2013, 11, 20, 17, 30, tzinfo=<UTC>)
如果我在像这样的模板中使用它
{{event.date.hour}}:{{event.date.minute}}
显示 17:30。
但是当我将它加载到模型表单中的模板上时
event_form = EventForm(instance=event)
在模板中
{{event_form.as_p}}
然后显示的日期与我在管理页面中添加的相同,即 19:30
我怎样才能改变这种行为。 django 是否总是以 UTC 格式保存日期?我在希腊,因此 datetime 对象的负 2 小时(我认为)。假设我的应用程序将在许多不同的国家/地区运行,我可以自动执行此操作吗,例如当我使用属性在模板上呈现日期时,它将显示实际保存的时间,而不是 UTC 时间。希望我说得通....
在我的设置文件中有
TIME_ZONE = 'Europe/Athens'
USE_TZ = True
【问题讨论】:
标签: python django datetime timezone django-timezone