【问题标题】:Django - Editing the settings Default Time ZoneDjango - 编辑设置默认时区
【发布时间】:2013-10-30 20:45:53
【问题描述】:

我现在正在经历使 django 应用程序时区感知的过程。最初,TIME_ZONE 设置设置为“America/Los_Angeles”,但我认为将其设置为“UTC”可能更标准。

当我在 Javascript 中将 datetime 渲染到网页时,我发现了一些意外行为(start_date 是我之前在视图中定义的幼稚 datetime):

django 视图:cal_start_date = time.mktime(start_date.timetuple())

js:startDate = new Date(response.cal_start_date * 1000)

根据我在settings.py中设置的TIME_ZONE,我得到了cal_start_date的不同时间戳,这是可以理解的:time.mktime方法返回一个浮点数,表示自纪元以来的秒数(01/ 01/1970)。但是,自纪元以来的秒数取决于我们所指的时区。我相信time.mktime 会自动将TIME_ZONE 设置作为用于此参考的设置,对吧?

一般来说,更改 django TIME_ZONE 设置是不好的做法吗?

【问题讨论】:

    标签: python django python-datetime django-timezone


    【解决方案1】:

    看看this answer:

    time.mktime() 假定传递的元组是本地时间, calendar.timegm() 假定它是 GMT/UTC。取决于 解释元组代表不同的时间,所以函数 返回不同的值(自纪元以来的秒数基于 UTC)。

    值之间的差异应该等于时区 您当地时区的偏移量。

    我还建议您确保 USE_TZ = True 在您的 settings.py 中

    【讨论】:

      猜你喜欢
      • 2018-07-21
      • 2012-12-21
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-23
      • 2019-10-26
      相关资源
      最近更新 更多