kuniku’s diary

はてなダイアリーから移行(旧 d.hatena.ne.jp/kuniku/)、表示がおかしな箇所はコメントをお願いします。記載されている内容は日付およびバージョンに注意してください。直近1年以上前は古い情報の可能性が高くなります。

jetbrains DataGridを使って現在時刻表示(DB側でなくクライアント側の時刻)

PostgreSQL

select now();

で9時間前の時刻が表示される。

デフォルトだとタイムゾーン世界標準時UTC

https://intellij-support.jetbrains.com/hc/en-us/articles/115000877044-DataGrip-FAQ

Go to Advanced tab of datasource and put -Duser.timezone=UTC into VM options field.

なので、9時間遅い表示になる。

Data Sources and Drivers > タブAdbanced > VM options の設定値

-Duser.timezone=JST

にすると、

[22023]FATAL:invalid value for parameter "TimeZone":"JST"

になるので、

-Duser.timezone="Asia/Tokyo"
または
-Duser.timezone=UTC+09:00

にすると、日本時間で表示される。

DB側でのnowの日時でなくクライアント側の日時になる理由は調べてないのでわからない。


2020-07-12 追記

DataGrid 2020.1.5 のバージョンなのか、いつからかわからないが(以前からあったかも)

タブAdbanced > VM options の設定値

でなく

タブ Options
Connection - Timezone

の項目が別であり、 Japan を選べば、JSTUTC+9)になった