जवाबों:
<%= Time.current.year %>
मैं समय वर्ग की तुलना में वर्ष प्राप्त करने के लिए दिनांक वर्ग का उपयोग करूंगा (यदि आपको केवल दिनांक की आवश्यकता है, तो आपको घंटे, मिनट और सेकंड पर विचार करने की आवश्यकता नहीं है)।
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
मुझे लगता है कि आवेदन करने के समय पर विचार करने का सबसे अच्छा तरीका वर्तमान समय है:
Date.current.year
इसके बावजूद कि यह पहले ही उत्तर दिया जा चुका है, मैंने सोचा कि यह उन लोगों के लिए उपयोगी हो सकता है जो सभी सुझाए गए समाधानों के लिए बेंचमार्क परिणामों को देखना चाहते हैं।
require 'benchmark'
n = 500000
Benchmark.bm do |x|
x.report { n.times do ; Date.today.year; end }
x.report { n.times do ; Date.current.year; end }
x.report { n.times do ; Time.current.year; end }
x.report { n.times do ; Time.zone.now.year; end }
end
user system total real
0.680000 0.030000 0.710000 ( 0.709078)
2.730000 0.010000 2.740000 ( 2.735085)
3.340000 0.010000 3.350000 ( 3.363586)
3.070000 0.000000 3.070000 ( 3.082388)
अब, यह संभवत: किसी चीज़ के लिए शीर्ष पर लग सकता है, हालांकि, एक उच्च थ्रूपुट एप्लिकेशन के लिए एक सरल अनुकूलन दृष्टिकोण से, मैं इसका उपयोग करने पर विचार करूंगा Date.today.year
कहा, यदि आपका आवेदन टाइम ज़ोन संवेदनशील है, तो शायद Date.current
या Time.zone
आधारित विधियाँ आपका सबसे अच्छा दांव हैं।
टाइम ज़ोन पर रयान द्वारा इस अद्भुत Railscast की जाँच करें
Date.current
के रूप में ही हैTime.zone.today
, तोconfig.time_zone
निर्धारित है।