python - Django 不考虑夏令时

标签 python django

这个问题很简单,但我一生都找不到任何相关信息。根据我的互联网搜索,这似乎应该不是问题; Django 应该自动执行此操作。

我的问题是,自从 DST 开始以来,Django 一直在将时间转换为比应有时间提前 1 小时显示在网页上的时间。我说转换为是因为我在设置中启用了“USE_TZ”,因此时间以 UTC 格式保存到数据库中,但时间被错误地转换为 EST,因为它们晚了一小时。

这可能是什么原因造成的?

这是一个例子:

这是模型。

class Chat(models.Model):
    chat_id = models.AutoField(primary_key=True)
    chat_user = models.ForeignKey(UserExt, null=True, on_delete=models.SET_NULL)
    chat_time = models.DateTimeField(auto_now_add=True)
    chat_type = models.CharField(default="chat", blank=False, null=False, max_length=20)
    chat_message = models.TextField()

这是将模型保存到数据库的示例

new_chat = ClubChat()
new_chat.chat_user = self.user
new_chat.chat_message = message
new_chat.chat_destination = self.club
new_chat.save()

这是显示日期/时间的网页示例

<tr {% if chat.chat_type == 'info' %} class="joinleavemessage"{% endif %}>
            <td>
                {% if chat.chat_user %}<p>{{ chat.chat_user }}</p>{% endif %}
                <p>{{ chat.chat_time|date:'m/d/Y h:i A' }}</p>
            </td>
            <td>
                <p>{{ chat.chat_message }}</p>
            </td>
        </tr>

此问题是整个网站范围内的问题,因此这不是唯一的示例。

最佳答案

设置您的TIME_ZONE='America/New_York'(或任何适当的区域设置)。

“EST”(UTC−05:00)和“EDT”(UTC−04:00)是不同的特定时间偏移,并且不会随着夏令时而改变,您需要使用基于位置的时区,这将需要考虑夏令时季节变化。

关于python - Django 不考虑夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71700269/

相关文章:

python - Django QuerySet 与原始 SQL 性能注意事项

python - 使用 write_shp 在 NetworkX 中写入 shapefile

python - 如何在神社中循环每个唯一变量?

python - Django:如何获取查询集的相关对象?

python - django-rest-framework-bulk 批量更新查看输出定制

python - 使用 matplotlib 自定义小部件在 pyqt4 中嵌入 matplotlib 工具栏

带条件的 Python 排列(回溯)

django - 完整性错误 : null value in column "email" violates not-null constraint

python - django配置不正确的错误

python - 如何在 django 的两边设置多对多字段空白=真