Django将时区UTC+1保存为UTC+0的日期时间建模



在我的django项目中,我有一个模型,我在其中存储数据(在我的read_date字段中(,其中有一个DateTime字段用于存储日期(带时区(:

class Results(models.Model):
id = models.AutoField(primary_key=True)
device = models.ForeignKey(Device, null=True, on_delete=models.SET_NULL)
proj_code = models.CharField(max_length=400)
res_key = models.SlugField(max_length=80, verbose_name="Message unique key", unique=True)
read_date = models.DateTimeField(verbose_name="Datetime of vals readings")
unit = models.ForeignKey(ModbusDevice, null=True, on_delete=models.SET_NULL)

我使用时区在settings.py文件中设置:

TIME_ZONE = 'UTC+1'
USE_TZ = True

因此,问题是,当我将UTC+1时区的校正格式化数据项时间传递为:时

2021-11-12 10:39:59.495396+01:00

在我的数据库中,我得到:

2021-11-12 9:39:59.495396+00

为什么我的存储值是UTC+0,而不是使用传递的时区?

提前感谢

所有日期时间都存储在UTC中。这不是一个bug,而是一个特性。数据库在排序、选择、筛选等时需要一种格式来处理DateTime数据。因此,当您发出一些SQL请求时,可以传递所需的时区以进行自动转换。例如,您在UTC+1中的第一个用户,您可以使用此参数提出请求,您的另一个用户UTC-9,结果可能会有所不同。

最新更新