[PHP]DateTimeでUTCを日本時間に変換する方法

AWSのAPIなんかを叩いていると日付が世界標準時でレスポンスされてくるわけですが、これを日本時間に変換するのに手間取ってしまいました。
試行錯誤して正解にたどり着いたので紹介します。

問題

世界標準時"2013-10-17T10:00:00.000Z"を日本時間"2013-10-17 19:00:00"に変換したい。

ちなみに最後についてる"Z"の文字ですが、これがついてると「この時間は世界標準時だぞ」という意味らしいです。Wikipedia情報より。

UTC時間を日本時間に変換する方法

$t = new DateTime("2013-10-17T10:00:00.000Z");
$t->setTimeZone(new DateTimeZone('Asia/Tokyo'));
echo $t->format('Y-m-d H:i:s') . PHP_EOL;

# 実行結果:2013-10-17 19:00:00
オブジェクト指向的インターフェースでかっこいい気もしますが、オブジェクト指向のせいで無駄にコード量が多くなってる気が・・・。
カテゴリ:

人気記事