首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在本地时区将时间戳转换为正确的日期时间- Django

在本地时区将时间戳转换为正确的日期时间- Django
EN

Stack Overflow用户
提问于 2021-11-10 14:28:11
回答 1查看 445关注 0票数 0

我从API中得到一个时间戳。当我将其转换为:

代码语言:javascript
复制
timestamp = datetime.fromtimestamp(json.loads(m)["_timestamp"], tz=pytz.timezone('Europe/Berlin')) 

打印时,我在控制台中得到正确的时间:

代码语言:javascript
复制
2021-11-10 15:22:26+01:00

但是,当我将它保存到数据库时:

代码语言:javascript
复制
BedTemperatureHistory.objects.create(TimeStamp=timestamp)

时间戳在数据库中如下所示(少一个小时):

代码语言:javascript
复制
2021-11-10 14:22:26.000000 +00:00 

我的时区设置如下所示:

代码语言:javascript
复制
LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'Europe/Berlin'

USE_I18N = True

USE_L10N = True

USE_TZ = False

有人知道我需要做什么才能在我的数据库中保存正确的时间戳吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-10 14:34:13

您需要在设置中启用时区支持。

代码语言:javascript
复制
USE_TZ = True

编辑:时间戳实际上是正确地存储在您的问题中。您将注意到,这两次实际上是相同的,15:22+01:00和14:22+00:00是一样的。为了避免夏令节约的问题,Django在UTC中存储日期时间

Django将日期时间信息存储在数据库中的UTC中,在内部使用时区感知的日期时间对象,并在模板和表单中将它们转换为最终用户的时区。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69915033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档