我似乎无法在django中使用时区。我在这里阅读this,但是当我尝试应用它时,它将无效。
我的模特
class Model(models.Model)
name = models.CharField(max_length=30)
date = models.DateTimeField()
我的观点是:
from django.utils.timezone import timezone
def view(request):
today = datetime.now().replace(tzinfo=utc)
model = Model.objects.filter(date__gte=today, date__lte=today + timedelta(days=2)
return render_to_response('template.html', {'models':model}, context_instance=RequestContext(request)
在我的template.html中
{%for model in models%}
{{model.date.hour}}:{{model.date.hour}} - {{model.name}}
{%endfor%}
我的设置文件
TIME_ZONE = 'Europe/Athens'
USE_TZ = True
USE_L10N = True
因此,当我读取USE_TZ为真时,日期时间以UTC格式保存在数据库中,然后django在本地时间(根据TIME_ZONE变量)在表单中显示它们时显示它们。但是我的模板显示保存在日期中的日期数据库(意味着当地时间落后两小时,例如我想要18:30,它保存16:30,显示16:30)。我试过了
{%load tz%}
{%for model in models%}
{{model.date.hour|localtime}}:{{model.date.minute|localtime}} - {{model.name}}
{%endfor%}
什么。更确切地说,它根本没有显示任何日期,它变得空白。我试过了
{%load tz%}
{%for model in models%}
{%localtime on %}
{{model.date.hour}}:{{model.date.time}} - {{model.name}}
{%endlocaltime%}
{%endfor%}
但时间仍然没有修改。
事情是我的模板中的较低,我在
中执行此类操作{{model.date}} - {{model.name}}
如果它以正确的时区显示日期(例如14:30变为16:30),而不是24h格式(我保存了它)。 有人能帮助我一点时区和django一劳永逸地清除它