2012-02-13 191 views
1

我遇到随机更改时区的保存对象的问题。django - 时间戳随机更改时区

我的django应用程序位于使用ntp同步的ubuntu web服务器上。

在我的Django的设置文件我有TIME_ZONE = 'Europe/London'

我创建用途myObject.timestamp=datetime.datetime.now(),然后保存的对象。

由于某些原因,我发现偶尔记录的时间戳应该是-6小时(即,如果服务器恢复为默认的时区设置)。

这似乎只发生在周一早上4点到6点之间。我还没有找到任何与此相对应的计划任务。

例如今天上午创建下列对象:

time_created/timestamp_recorded 

05:02/05:02 
05:03/23:03 
05:04/05:04 
05:05/23:05 
05:06/23:06 
05:07/05:07 
05:08/23:08 
05:09/05:09 

...依此类推,直到05:45时,从所有对象有正确的时间戳。

关于在哪里寻找可能原因的任何想法?

+0

服务器上设置的时区是什么? 数据库的时区是什么? – 2012-02-13 11:18:59

+0

'SELECT @@ session.time_zone;'在mysql实例上返回'SYSTEM'并在命令行输入'date'返回'Mon Feb 13 12:27:24 GMT 2012' – meepmeep 2012-02-13 12:28:01

回答

1

我找到了答案 - 见http://code.google.com/p/modwsgi/wiki/ApplicationIssues#Timezone_and_Locale_Settings

基本上是一个二次申请也正在WSGI运行,而这个其他应用再没使用的日期时间。因此,我没有改变它的默认时区设置。每当运行其他应用程序时,它都会将环境重置为默认时区。

因此,当我的核心应用程序运行时,它会同时使用错误的区域设置,但也会将环境重置到正确的位置,从而导致间歇性故障。