Soru Rails'te, geçerli saat dilimini (Time.zone) ActiveSupport :: TimeZone [zone] .parse () ile kullanılabilen bir biçimde nasıl edinebilirsiniz?


Bir yöntem şu anki Time.zone'u nasıl alabilir ve tarafından kullanılabilen bir biçime nasıl yerleştirebilir? ActiveSupport::TimeZone[some_zone].parse()?

Time.zone.to_s ile kullanılamayan bir dize döndürdüğü çok garip görünüyor ActiveSupport::TimeZone[zone].parse()

Time.zone.to_s döner "(GMT-08:00) Pacific Time (US & Canada)"

Fakat ActiveSupport::TimeZone["(GMT-08:00) Pacific Time (US & Canada)"] olduğu nil.

ActiveSupport::TimeZone["(GMT-08:00) Pacific Time (US & Canada)"]
=> nil

ActiveSupport::TimeZone["Pacific Time (US & Canada)"]
=> (GMT-08:00) Pacific Time (US & Canada)

23
2017-12-14 23:24


Menşei




Cevaplar:


kullanım Time.zone.name, değil 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)

Bunu nasıl elde ettiğime gelince (istendiği gibi)Ben sadece biliyorum name yöntem var Time.zone. Eğer bunu kalbinden bilmiyorsam, belgeleri kontrol edeceğim. Eğer dediğin gibi değilse (ve budur, İşte)Ben genellikle sınıf / modül / nesneyi Gözetlemek. Gözetlemek gibi bir şey yapmamı sağlayan irb'a bir alternatif

[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 internet üzerinden [2] nesne üzerinde baskı yöntemleri (sağa kaydırırsanız görürsünüz name orada listelendi). Sen görebilirsiniz [3] arayabilirim name doğrudan üzerinde Time.zone Nesne İçindeyim ve aradığınız çıktıyı aldım.


40
2017-12-15 00:30



harika teşekkür ederim ... doktora baktı, hiç görmedim. Bu tür bir şeyi nasıl bulacağınızı bilmek merak ediyor mu? - jpwynn
Bunu nasıl bulabileceğimi açıklamak için cevabımı güncelledim. - deefour