我在PostgreSQL中设置了UTC
个时区,SELECT NOW()
向我展示了psql
控制台中的正确日期。
我使用PHPStorm进行开发,使用数据库控制台访问我的数据库,但它使用不同的时区(欧洲/莫斯科,这是我的Mac的时区),SELECT NOW()
显示我的时间时区(顺便说一下,日期是错误的,因为欧洲/莫斯科时区最近将其偏移从+3
更改为+4
。
我没有找到任何有关如何告诉PHPStorm使用postgresql.conf
中配置的时区而不是系统时区的信息。有可能吗?
答案 0 :(得分:3)
使用查询验证您的时区
SELECT * FROM pg_timezone_names
现在添加phpstorm.vmoptions配置关闭时区
-Duser.timezone = POSIX /美/圣保罗
应用更改,断开连接,同步和验证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 ...
只有将timezoneAsRegion
值false
添加到连接的高级选项卡而没有任何phpstorm.vmoptions更改,这有助于我从表中返回正确的时区。
文档链接:https://www.jetbrains.com/help/phpstorm/2016.1/data-sources-and-drivers-dialog.html#advancedTab