【问题标题】:Django show me an incorrect date due to time zone由于时区,Django 显示不正确的日期
【发布时间】:2021-05-18 05:52:46
【问题描述】:

我在 django 中有一个存储日期时间字段的模型:

class Trip(models.Model):
    departureDate=models.DateTimeField()
    arrivalDate=models.DateTimeField()
    duration=models.IntegerField() #in seconds
    price=models.FloatField()

我介绍了这个日期时间:2021-05-18 12:29:00+02:00 2021-05-18 13:19:00+02:00。 当我在视图中显示它时,我会看到 11:19 的小时和分钟。

我在设置中有这个:

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True

我需要显示 13:19 的小时和分钟,但我不想设置 UTC=False。

谢谢。

【问题讨论】:

    标签: python html django django-models utc


    【解决方案1】:

    有两个DateTime字段,你需要显示正确的字段。

    如果您需要将时间转换为不同的时区,您可以使用 datetime.astimezone() 方法和 pytz 对象。

    【讨论】:

    • 字段无关紧要。两者都会发生。
    • 是否必须将 DateTimeField 转换为时区 0 才能达到我的目标?
    • 首先你的问题不是很清楚,你说你在上面介绍了两次。一个是2021-05-18 12:29:00+02:00,另一个是2021-05-18 13:19:00+02:00。所以理想情况下,第一个应该显示12:29,另一个应该显示13:19。如果它不这样做,那么您可能设置的时间不正确。我建议您检查您的代码逻辑或编辑您的问题,并提供更多详细信息以及必要的代码。
    • 转换时区取决于你,我刚才提到了。例如,如果您的显示时区与项目的设置时区相同,则无需转换,反之亦然。
    猜你喜欢
    • 1970-01-01
    • 2019-03-08
    • 1970-01-01
    • 2022-01-04
    • 2016-04-07
    • 2018-11-26
    • 1970-01-01
    • 2014-03-15
    • 2015-02-14
    相关资源
    最近更新 更多