是否可以在 PHPStorm 中为数据库数据源指定时区?
Is it possible to specify time zone for DB data source in PHPStorm?
我在我的 PostgreSQL 中设置了 UTC
时区,并且 SELECT NOW()
在 psql
控制台中显示了正确的日期。
我使用 PHPStorm 进行开发,并使用它的数据库控制台访问我的数据库,但它使用不同的时区(Europe/Moscow,这是我的 Mac 的时区)和 SELECT NOW()
显示了这个时区的时间(顺便说一句,日期是错误的,因为 Europe/Moscow 时区最近将其偏移量从 +4
更改为 +3
)。
我没有找到任何关于如何告诉 PHPStorm 使用 postgresql.conf
中配置的时区而不是系统时区的信息。可能吗?
好吧,我找到了一个解决方案,但它会影响 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
在使用 -Duser.timezone=UTC
行修改 phpstorm.vmoptions 文件后,我只从 NOW()
函数中看到了正确的 return,但从对 table 的查询中看到了错误喜欢 SELECT timestamp FROM ...
仅在没有任何 phpstorm.vmoptions 更改的情况下将具有 false
值的变量 timezoneAsRegion
添加到连接的高级选项卡帮助我 return 正确的时区 table.
文档 link:https://www.jetbrains.com/help/phpstorm/2016.1/data-sources-and-drivers-dialog.html#advancedTab
通过查询验证您的时区
SELECT * FROM pg_timezone_names
现在添加phpstorm.vmoptions配置关闭时区
-Duser.timezone=posix/America/Sao_Paulo
应用更改、断开连接、同步并验证select now()
我在我的 PostgreSQL 中设置了 UTC
时区,并且 SELECT NOW()
在 psql
控制台中显示了正确的日期。
我使用 PHPStorm 进行开发,并使用它的数据库控制台访问我的数据库,但它使用不同的时区(Europe/Moscow,这是我的 Mac 的时区)和 SELECT NOW()
显示了这个时区的时间(顺便说一句,日期是错误的,因为 Europe/Moscow 时区最近将其偏移量从 +4
更改为 +3
)。
我没有找到任何关于如何告诉 PHPStorm 使用 postgresql.conf
中配置的时区而不是系统时区的信息。可能吗?
好吧,我找到了一个解决方案,但它会影响 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
在使用 -Duser.timezone=UTC
行修改 phpstorm.vmoptions 文件后,我只从 NOW()
函数中看到了正确的 return,但从对 table 的查询中看到了错误喜欢 SELECT timestamp FROM ...
仅在没有任何 phpstorm.vmoptions 更改的情况下将具有 false
值的变量 timezoneAsRegion
添加到连接的高级选项卡帮助我 return 正确的时区 table.
文档 link:https://www.jetbrains.com/help/phpstorm/2016.1/data-sources-and-drivers-dialog.html#advancedTab
通过查询验证您的时区
SELECT * FROM pg_timezone_names
现在添加phpstorm.vmoptions配置关闭时区
-Duser.timezone=posix/America/Sao_Paulo
应用更改、断开连接、同步并验证select now()