如何解决Django&Postgres时区当地时间vs utc
我将日期时间保存到我的postgres数据库中,然后在我的网站上显示它时,这是错误的...
在我的模型中。py:
datetime_start = models.DateTimeField()
在postgres中,这样保存时间:utc + 2h:
在django中,我进行了以下设置:
USE_TZ = True
TIME_ZONE = 'Europe/Paris'
在我的模板中,我得到了时间,为了进行测试,我显示了一次utc和一次本地时间:
<th> Start </th>
<td>{{activity.datetime_start |utc|date:"d.m.Y H:i"}}</td>
<td>{{activity.datetime_start |localtime|date:"d.m.Y H:i"}}</td>
这是我网站上的输出:
为什么此输出错误? utc时间应为:06:00
本地时间应该是:08:00
我很困惑,我在时区和时间上犯了什么错误? django是否将postgres时间解释为错误?
解决方法
我现在找到了解决方案。我在postgres中以错误的格式保存了时间。 因为我保存的时间已经是UTC时间,所以我还必须设置时区...
data ['value']对象已经是UTC时间,因此我在其中添加了时区:
import pytz
start_datetime_tz = data['value'].replace(tzinfo=timezone.utc)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。