Django 为什么时间与settings.py中的“我的时区”不同

Django 为什么时间与settings.py中的“我的时区”不同,django,sqlite,datetime,timezone,Django,Sqlite,Datetime,Timezone,我正在使用Sqlite作为我的项目数据库。 我需要我的模型中的日期和时间,所以我使用这个字段 date = models.DateTimeField() 在结果模板(results.html)上,时间是正确的(localtime或mysettings.py中的时区) 问题是,当我在Django管理页面和sqlite db文件上检查数据库时,似乎没有应用我的时区设置。(因此,可能是UTC) 问题是什么?我如何解决这个问题 我认为模板的参数来自视图,因此timezone.now()是正确的,并且传

我正在使用Sqlite作为我的项目数据库。 我需要我的模型中的日期和时间,所以我使用这个字段

date = models.DateTimeField()
在结果模板(results.html)上,时间是正确的(localtime或mysettings.py中的时区) 问题是,当我在Django管理页面和sqlite db文件上检查数据库时,似乎没有应用我的时区设置。(因此,可能是UTC)

问题是什么?我如何解决这个问题

我认为模板的参数来自视图,因此timezone.now()是正确的,并且传递了正确的时间。 所以我猜'date=timezone.now()'会像这样传递给sqlite:

insert into table values (date=datetime('now'))'
sqlite的时区可能设置为UTC默认值

这就是我的猜测。我说得对吗?我也不知道如何设置sqlite数据库时区

p、 另一方面,我也认为当我们设置settings.py时区时,django会管理所有这些事情。 所以我不知道去哪里。在这个问题上花费了将近2天…

在settings.py中,设置

USE_TZ = False

可以解决这个问题

wow。。问题解决了。谢谢。你能解释一下为什么它能工作或者为什么它没有工作吗?因为我从未见过有人说set USE_TZ=False。如果您将USE_TZ=True设置为True,django会将您的日期时间保存为数据库中的UTC,当您在模板中呈现某些内容时,django会将UTC转换为settings.py中的时区。您可以阅读更多详细信息。