Clojure:将 OS 时区更改为 UTC 后,java.jdbc 无法连接到 Postgres

Clojure: java.jdbc can't connect to Postgres after changing OS timezone to UTC

当我通过 timedatectl set-timezone UTC 将服务器上的时区设置为 UTC 并重新启动 Postgres 服务器时,我可以通过 psql 进行连接并验证 select now() return 的值是否正确。

当我尝试启动 Clojure 应用程序和 运行 查询时,出现以下错误:

Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: org.postgresql.util.PSQLException: FATAL: invalid value for parameter "TimeZone": "UTC"

我在我的应用程序中使用以下数据库库:

[org.postgresql/postgresql "9.4.1208"]
[clojure.jdbc/clojure.jdbc-c3p0 "0.3.2"]
[org.clojure/java.jdbc "0.6.1"]

该错误看起来像是来自 Postgres,但仅在通过 Clojure 应用程序连接时才会发生。

如果我 return OS 时区为 America/New_York

,一切正常

看看

postgres default timezone

查看数据库理解的时区名称:

SELECT * FROM pg_timezone_names;