Answers:
<%= Time.current.year %>
我宁愿使用Date类而不是Time类来获取年份(如果仅需要Date,则无需考虑小时,分钟和秒)。
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
尽管已经回答了它,但我认为对于那些希望查看所有建议解决方案的基准结果的人来说,它可能会派上用场。
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
基于方法。
Date.current
是一样的Time.zone.today
,如果config.time_zone
设置。