Django需要时区支持吗?
我正在开发一个基于事件信息的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)