我认为您的解决方案只是解决有关 synology diskstation 上 zoneinfo 的实际问题的解决方法。
尝试连接到我的 diskstation 上的 postgres 数据库时,我遇到了完全相同的错误。该查询select * from pg_timezone_names;
为您提供了 postgresql 知道的所有时区名称。
有 87 个条目都以“时区”开头:
name | abbrev | utc_offset | is_dst
------------------------+--------+------------+--------
Timezone/Kuwait | AST | 03:00:00 | f
Timezone/Nairobi | EAT | 03:00:00 | f
...
配置的 postgrestimezonesets
包含更多条目,因此 postgres 在启动时构建此视图必须有另一个源。我发现有一个编译选项--with-system-tzdata=DIRECTORY
告诉 postgres 从系统 zoneinfo 获取它的值。
我查看/usr/share/zoneinfo
并找到一个子目录,其中Timezone
包含 87 个条目。而且显然没有调用子目录Europe
(带有一个名为 的时区文件Berlin
)。我没有很快找到一个解决方案,让 diskstation通过解包和制作 ( ...)来tzdata
自动或手动更新磁盘站。作为快速修复,我从另一个 linux 系统复制了时区文件,问题得到了解决,因此我现在可以使用正确的时区“欧洲/柏林”通过 java/jdbc 进行连接!tzdata2016a.tar.gz
make not found
Berlin