Django将日期时间存储在UTC时区。详见本文档。由于您将
我发送了以下内容:
{'ticker': 'XYZ', 'last_price': 394.05, 'last_date_time': '2022-10-04 15:57:18'}
当它被保存在DB:中时
ticker: XYZ
last_price: 394.05
last_date_time: 2022-10-04 11:57:18
我不知道这是如何或为什么改变的。
型号.py
class StockPriceModel(models.Model):
ticker = models.CharField(max_length=30, blank=False, db_index=True)
last_price = models.FloatField(blank=True, null=True)
last_date_time = models.DateTimeField(db_index=True)
created_at = models.DateTimeField(auto_now_add=True)
auto_now_add
字段也显示错误的时间。
它与我在以下设置中的日期时间设置不一致:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Dubai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
'Asia/Dubai'
指定为默认时区。Django将接收值视为"亚洲/迪拜"时间,并在保存之前将其转换为UTC。如果您需要更改此逻辑,请尝试在序列化程序的DateTimeField
字段中使用default_timezone
参数:
class MySerializer:
last_date_time = DateTimeField(default_timezone=pytz.utc)