Time

タイムゾーン

rubyが出力するタイムゾーン文字列はOSの実装に依存しています。以下のよう な文字列を返すOSさえあります。 *1

$ ruby -e 'p Time.now'
Mon Sep 04 17:32:11 東京 (標準時) 2000

また、カレントのタイムゾーンを返す実装も多く、Time.gmtime などの 効力が及ばない場合があります。

puts Time.now.gmtime.strftime("%H:%M %Z") #-> 06:09 GMT+9:00

OSによらずruby自身が"UTC"を出力する場合もあるのでさらに複雑です。 *2

$ ruby -e 'p Time.now.gmtime.zone'
"GMT"
$ ruby -e 'p Time.now.gmtime'
Tue Jan 16 17:09:22 UTC 2001

これらの問題の影響を受けるメソッドには以下のものがあります。


*1Windowsで環境変数TZを設定していないときにこのようになることがあるようです。
*2 version 1.7では Time#zone は"UTC" を返します



rubyist ML