【问题标题】:How to clear up Datetime and Timezone confusion?如何清除日期时间和时区混淆?
【发布时间】:2015-02-19 21:07:14
【问题描述】:

运行 Django 网络应用和 settings.py 有以下内容:

TIME_ZONE = 'UTC'

模型的时间字段设置为datetime.datetime.utcnow()。 当我查看管理屏幕中的字段时,它是正确的,UTC 时间戳在我当地时间 +8 小时。

然而,当我在客户端显示时间时,时间又是我当地时间的 +8(总共 +16 小时)。

当我单步执行代码时,日期没有变化。从数据库中查询时间戳时,与实际UTC时间相差+8。

我做错了什么?我们在 Windows 上运行开发环境,并且有一些关于结果不准确的警告。但我也将它推送到我们的 Linux 机器上,结果是相同的。

【问题讨论】:

  • 我一时想不起来了,但我相信 Django 的 TIME_ZONE 设置的全部意义在于规范化它你,这意味着做@ 987654324@ 将工作加倍,因此进行了双重转换。

标签: python django datetime timezone utc


【解决方案1】:

settings.py,如果

USE_TZ = True

...那么结果可能不如预期。我相信有文档,我只是错过了它。当我删除设置时,时间按预期报告。

@Two-BitAlchemist提供:

Here 是相关文档。特别是,如果您没有 USE_TZ=True,它会假定您使用的每个日期都在您的本地时间,并将其转换为 UTC

【讨论】:

  • Here 是相关文档。特别是,如果您没有 USE_TZ=True,它会假定您使用的每个日期都是您的本地时间并将其转换为 UTC。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-03-07
  • 2018-06-17
  • 2022-01-03
  • 2015-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多