我从API中得到一个时间戳。当我将其转换为:
timestamp = datetime.fromtimestamp(json.loads(m)["_timestamp"], tz=pytz.timezone('Europe/Berlin')) 打印时,我在控制台中得到正确的时间:
2021-11-10 15:22:26+01:00但是,当我将它保存到数据库时:
BedTemperatureHistory.objects.create(TimeStamp=timestamp)时间戳在数据库中如下所示(少一个小时):
2021-11-10 14:22:26.000000 +00:00 我的时区设置如下所示:
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Europe/Berlin'
USE_I18N = True
USE_L10N = True
USE_TZ = False有人知道我需要做什么才能在我的数据库中保存正确的时间戳吗?
发布于 2021-11-10 14:34:13
您需要在设置中启用时区支持。
USE_TZ = True编辑:时间戳实际上是正确地存储在您的问题中。您将注意到,这两次实际上是相同的,15:22+01:00和14:22+00:00是一样的。为了避免夏令节约的问题,Django在UTC中存储日期时间:
Django将日期时间信息存储在数据库中的UTC中,在内部使用时区感知的日期时间对象,并在模板和表单中将它们转换为最终用户的时区。
https://stackoverflow.com/questions/69915033
复制相似问题