使用するTime.zone.name
、ではなくTime.zone.to_s
[1] pry(main)> Time.zone.to_s
=> "(GMT-05:00) Eastern Time (US & Canada)"
[2] pry(main)> Time.zone.name
=> "Eastern Time (US & Canada)"
[3] pry(main)> ActiveSupport::TimeZone[Time.zone.name]
=> (GMT-05:00) Eastern Time (US & Canada)
(要求に応じて)これを取得した方法については、name
メソッドがに存在することを知っていTime.zone
ます。しかし、これを心から知らなかった場合は、ドキュメントを確認します。あなたが言うようにそれがそこにない場合(そしてそれはここにあります) 、私は通常、 Pryを使用してクラス/モジュール/オブジェクトを検査します。Pryはirbの代替手段であり、次のようなことができます。
[1] pry(main)> cd Time.zone
[2] pry(#<ActiveSupport::TimeZone>):1> ls -m
Comparable#methods: < <= == > >= between?
ActiveSupport::TimeZone#methods: <=> =~ at formatted_offset local local_to_utc name now parse period_for_local period_for_utc to_s today tzinfo utc_offset utc_to_local
self.methods: __pry__
[3] pry(#<ActiveSupport::TimeZone>):1> name
=> "Eastern Time (US & Canada)"
ls -m
上記の行[2]
は、オブジェクトのメソッドを出力します(右にスクロールすると、name
そこにリストが表示されます)。中にあるオブジェクトを直接[3]
呼び出して、探している出力を取得できることがわかります。name
Time.zone