You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Django 3.2将日期时间以IST时区存入数据库?

如何让Django 3.2强制以IST时区存储日期时间到数据库

要让Django不再以UTC存储时间,改用IST(印度标准时间),按以下步骤操作:

1. 修改项目配置文件 settings.py

调整两个核心配置参数:

  • 指定IST对应的时区标识符:
    TIME_ZONE = 'Asia/Kolkata'
    
  • 关闭UTC自动转换机制:
    USE_TZ = False
    

当USE_TZ = False时,Django会直接用TIME_ZONE指定的时区存储和处理所有日期时间数据,不再自动转成UTC。

2. 验证存储效果

创建测试模型确认配置生效:

from django.db import models

class TimeRecord(models.Model):
    recorded_at = models.DateTimeField(auto_now_add=True)

添加一条记录后,直接查看数据库里的recorded_at字段值,确认它是IST时间而非UTC。

3. 关键注意事项

  • 因为数据库被多应用共享,必须确保所有其他应用也统一用IST时区存储时间,避免数据混乱
  • 关闭USE_TZ后,Django中的datetime对象都是无时区标记的naive类型,代码里别混用带时区(aware)和不带时区(naive)的时间对象,否则会触发错误
  • 若数据库已有UTC格式的旧数据,需要手动转换为IST后更新,不然新旧数据会出现时间偏差

内容的提问来源于stack exchange,提问作者Nanda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 07:26:08