2012-12-14 11 views
24

कोई विधि वर्तमान टाइम.ज़ोन कैसे ले सकती है और इसे एक प्रारूप में डाल सकती है जो ActiveSupport::TimeZone[some_zone].parse() द्वारा प्रयोग योग्य है?रेल में, वर्तमान समय क्षेत्र (Time.zone) को प्रारूप में कैसे प्राप्त किया जा सकता है जिसका उपयोग ActiveSupport :: TimeZone [zone] .parse() के साथ किया जा सकता है?

यह बहुत अजीब है कि Time.zone.to_s एक स्ट्रिंग है ActiveSupport::TimeZone[zone].parse()

Time.zone.to_s रिटर्न "(GMT-08:00) Pacific Time (US & Canada)"

लेकिन ActiveSupport::TimeZone["(GMT-08:00) Pacific Time (US & Canada)"] के साथ उपयोग नहीं किया जा सकता है देता है लगता है nil है।

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

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

उत्तर

36

उपयोग 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 पर मौजूद है। अगर मुझे दिल से यह पता नहीं था, तो मैं दस्तावेज़ों की जांच करूंगा। यदि यह वहाँ में नहीं है, जैसा कि आप कहते हैं कि (और यह है, here), मैं आम तौर पर Pry साथ वर्ग/मॉड्यूल/वस्तु का निरीक्षण किया। जिज्ञासा मुझे वस्तु पर प्रिंट तरीकों से ऊपर लाइन [2] पर की तरह

[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 कुछ करने की सुविधा देता है (यदि आप स्क्रॉल सही आप name वहां सूचीबद्ध दिखाई देंगे) आईआरबी के लिए एक विकल्प है। आप [3] में देख सकते हैं मैं पर सीधे Time.zone ऑब्जेक्ट पर कॉल कर सकता हूं जिसमें मैं अंदर हूं और जिस आउटपुट को आप ढूंढ रहे हैं उसे प्राप्त करें।

+0

भयानक धन्यवाद ... दस्तावेज़ों को देखा, इसे कभी नहीं देखा। जानना उत्सुक है, आपको इस तरह की चीज़ कैसे मिलती है? – jpwynn

+0

मैंने यह बताने के लिए अपना जवाब अपडेट किया कि मुझे यह कैसे मिल सकता है। – deefour