我在新泽西服务器美国使用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使用时区...
我需要改变什么!?有人提示! 再次感谢大家和女孩的帮助,你摇滚!