我有以下Django框架:
models.py
import django
from django.db import models
from datetime import datetime
from django.utils import timezone
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField(default=django.utils.timezone.now,blank=True)
现在在浏览器中它看起来像这样:
但是在sqlite3中它看起来像这样:
sqlite> select * from test_app_question;
8|Who is it?|2015-10-21 07:28:08
请注意时间07:28:08
与16:28:08
的差异。不知何故,Django识别TIME_ZONE设置但不识别SQLITE3。我该如何解决这个问题?
在 settings.py 中,我有:
TIME_ZONE = 'Japan'
USE_I18N = True
USE_L10N = True
USE_TZ = True
答案 0 :(得分:3)
来自django docs(第一行):
当启用对时区的支持时,Django将日期时间信息以UTC格式存储在数据库中,在内部使用时区感知日期时间对象,并将它们转换为模板和表单中最终用户的时区。
由于UTC和日本时间之间存在9小时的差异(日本的时间是UTC + 9),因此DB和模板的值之间存在差异。