LoginSignup
3
1

More than 5 years have passed since last update.

タイムゾーンをちゃんと理解しておこう

Posted at

改めて整理しようと思ったきっかけ

基礎的な知識だけど、サーバやDBなどの設定を間違えると、「タイムスタンプ」で判定する処理が意図しない動作をすることがあるので。
実際そういうことが身の回りであったので...

「タイムゾーン」とは

「同じ標準時を利用する地域や区分」のこと。
例えば日本であれば、「グリニッジ標準時+9時間」が標準時となっており、韓国やインドネシア東部と同じタイムゾーンとなっている。

よくみる「JST」「GMT」「UTC」ってなに?

JST(Japan Standard Time: 日本標準時)

日本で使われている標準時。「東経135度、兵庫県明石市」...っていうやつ。

GMT(Greenwich Mean Time: グリニッジ標準時)

イギリスのグリニッジ天文台を基準とする標準時。
日本標準時は、GMT+9:00H。

UTC(Universal Time, Coordinated: 協定世界時)

GMTだと、長く使った場合数秒のズレが生じるらしい。
それを解消するために、人工的に調整された時間。

サーバやDBに設定されているタイムゾーン

サーバやDBにも、それぞれタイムゾーンが設定される。

Linuxサーバ

dateで現在の時刻を確認すると、設定されているタイムゾーンが確認できる。

$ date
2019年  1月 12日 土曜日 22:51:52 JST

PostgreSQL

select now()で現在の時刻を確認する。
「+09」となっていることから、JSTのタイムゾーンが考慮された時刻が設定されていることがわかる。

postgres=# select now();
              now              
-------------------------------
 2019-01-12 23:02:14.185657+09
(1 row)

/usr/local/var/postgres/postgresql.conf
の中で、タイムゾーンが設定されている。

timezone = 'Japan'

参考リンク

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1