是否可以在PHPStorm中指定DB数据源的时区?

时间:2015-03-05 08:33:16

标签: database timezone phpstorm

我在PostgreSQL中设置了UTC个时区,SELECT NOW()向我展示了psql控制台中的正确日期。

我使用PHPStorm进行开发,使用数据库控制台访问我的数据库,但它使用不同的时区(欧洲/莫斯科,这是我的Mac的时区),SELECT NOW()显示我的时间时区(顺便说一下,日期是错误的,因为欧洲/莫斯科时区最近将其偏移从+3更改为+4

我没有找到任何有关如何告诉PHPStorm使用postgresql.conf中配置的时区而不是系统时区的信息。有可能吗?

3 个答案:

答案 0 :(得分:3)

使用查询验证您的时区

SELECT * FROM pg_timezone_names

现在添加phpstorm.vmoptions配置关闭时区

-Duser.timezone = POSIX /美/圣保罗

enter image description here

应用更改,断开连接,同步和验证select now()

答案 1 :(得分:1)

嗯,我找到了一个解决方案,但它会影响IDE中每个特定于时间的行为,例如:控制台日志将以UTC格式显示日期时间。

我们的想法是将时区传递给VM选项。为此,我们需要修改文件并重新启动IDE。

对于Mac OS X,最新版本的PHPStorm:

cp /Applications/PhpStorm.app/Contents/bin/phpstorm.vmoptions ~/Library/Preferences/PhpStorm2016.1/

然后将-Duser.timezone=UTC添加到文件中,使其看起来像这样:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops
-Duser.timezone=UTC

答案 2 :(得分:0)

使用-Duser.timezone=UTC行修改phpstorm.vmoptions文件后,我发现仅从NOW()函数返回正确但从查询到SELECT timestamp FROM ...

等表的查询不正确

只有将timezoneAsRegionfalse添加到连接的高级选项卡而没有任何phpstorm.vmoptions更改,这有助于我从表中返回正确的时区。

文档链接:https://www.jetbrains.com/help/phpstorm/2016.1/data-sources-and-drivers-dialog.html#advancedTab