prompt$ date
Mon Oct 7 17:32:24 UTC 2013
prompt$ psql -U postgres
postgres=# show timezone;
TimeZone
----------
GMT
(1 row)
postgres=# select now();
now
-------------------------------
2013-10-07 20:32:42.354384+03
(1 row)
为什么它以 +03 时区格式返回?我在这里显然错过了什么?
编辑:我解决了这个问题,但仍然存在一个问题。这是发生的事情:
我更改了系统的操作系统时区,而没有重新启动 postgres 服务器。以前的操作系统时区确实是 +03。在我重新启动 postgres 后,它工作正常。但这是一个奇怪的情况:postgresql.conf 没有明确定义任何时区,客户端(psql)应该始终输出“显示时区”报告的时区中的时间戳。所以还有这个无法解释的问题:
为什么 psql 将 GMT 报告为时区设置,但在操作系统新时区显示时间戳。这是预期的行为吗?