【发布时间】:2017-11-06 08:24:20
【问题描述】:
插入数据库的时间是默认的 UTC,而不是基于时区的时间。我不明白为什么会发生这种情况,即使我在查询中特别指定了我想要插入的时间.
在我的模型中我有
class leave(models.Model):
date_created = models.DateTimeField(auto_now_add=True)
在我的设置中
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True
在我看来,我是根据员工所在国家/地区设置时区
if employees.objects.get(emp_id=request.user.username).emp_loc == 'IND':
tzone=pytz.timezone('Asia/Calcutta')
elif employees.objects.get(emp_id=request.user.username).emp_loc == 'MLA':
tzone=pytz.timezone('Asia/Manila')
elif employees.objects.get(emp_id=request.user.username).emp_loc == 'MPLS':
tzone=pytz.timezone('CST6CDT')
然后我根据国家/地区创建休假和更新时区
new_leave = leave.objects.create(employee=employees.objects.get(emp_id = userid.emp_id), start_date=sdt, end_date=edt, ltype=ltyp, message=des,date_created=datetime.now(tzone))
new_leave.save()
提前致谢。
【问题讨论】:
-
我回答了这个,但后来意识到这个问题和我的回答重复了这个:Django DateTimeField Stores datetime regardless of the tzinfo
标签: python django datetime django-models