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"
を返します