Django - 编辑设置默认时区

时间:2013-10-30 20:45:53

标签: python django python-datetime django-timezone

我现在正在审视让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方法返回表示秒数的浮点数从纪元(1970年1月1日)开始。但是,自纪元以来的秒数取决于我们所指的时区。我相信time.mktime会自动将TIME_ZONE设置作为用于此引用的设置,对吗?

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

1 个答案:

答案 0 :(得分:0)

看看this answer

  

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

     

值之间的差异应该等于时区   抵消当地时区。

我还建议您确保settings.py

中的USE_TZ = True