Django需要时区支持吗?

1 投票
2 回答
1227 浏览
提问于 2025-04-17 17:26

我正在开发一个基于事件信息的Django应用。我的客户发送的所有日期和时间信息都是用协调世界时(UTC)格式的,然后再转换成当地时间。这些信息会以字符串的形式发送到服务器。此外,我使用Postgres作为数据库,它也会以UTC格式存储信息。

时区支持是开启的,但我在Django中使用的是没有时区信息的日期时间,这导致我收到了警告。我真的需要为我的应用开启时区支持吗?

如果需要的话,我该如何解决这些警告呢?

2 个回答

0

我强烈建议你使用 pytz模块。这个模块可以让你处理时区的时候轻松很多。

0
USE_TZ = True # to activate time zone setting.
TIME_ZONE = 'America/Chicago' # set your timezone

当你启用时区设置时,Django会在你每次在代码中设置无时区的日期时间时发出警告。这没什么好担心的。你只需要一步一步地把你的代码改成使用有时区的日期时间。

https://docs.djangoproject.com/en/dev/topics/i18n/timezones/#concepts

from django.utils.timezone import utc, now

class SomeModel(Model):
    schedule = django_models.DateTimeField(default=now)

撰写回答