时区设置django postgresql linux

时间:2018-01-16 13:36:52

标签: python django postgresql datetime timezone

我在新泽西服务器美国使用Postgre SQL在linux上有一个django网站(linode.com) 但是用户处于不同的时区(巴西)。这是我所知道的傻瓜,但我做了一些改变设置的测试,但没有任何积极的。

以下是一些环境设置: Linux Server(美国):

$cat /etc/timezone
Etc/UTC

Postgres Console(美国):

postgres=# show timezone;
UTC

Django settings.py(USA):

TIME_ZONE = 'America/Sao_Paulo'
USE_TZ = True

现在的结果。

巴西现在的时间:

  

10:07H

Linux服务器时间(美国):

  

12:07:52 UTC

这有些不对劲!但好吧,我不会在我的网站上使用系统本地时间!

POSTGRE控制台(美国):

select now();
2018-01-16 12:07:36.967415+00

我有一个带有字段DATA_LEITURA的模型'coleta'。

data_leitura = models.DateTimeField(null=True)

现在我在10:07:16h插入一个寄存器。这是巴西的正确时间! 参见:

br_tz = timezone('America/Sao_Paulo')
coleta.data_leitura = datetime(2018, 01, 16, 10, 07, 16, tzinfo=br_tz)

在postgre控制台(美国):

SELECT data_leitura FROM coleta;
2018-01-16 15:13:16+00

太错了! 当用户(巴西)打开网站时,他们会看到:

  

15时13分16秒

我把这行br_tz =时区('America / Sao_Paulo') 这条线解决了NAIVE警告和自动转换!

我现在正在更改每个配置以查看结果......但没有任何积极的结果。 我认为这是两个要做的改变。 我第一次使用postgres和django使用时区...

我需要改变什么!?有人提示! 再次感谢大家和女孩的帮助,你摇滚!

0 个答案:

没有答案