如何显示当前年份?

问题描述

| 是否可以使用某个功能在视图中显示当前年份?我试过了
<%= Time.Now  %>
尝试显示时间,但这对我不起作用。     

解决方法

        
<%= Time.current.year %>
http://pleac.sourceforge.net/pleac_ruby/datesandtimes.html     ,        我宁愿使用Date类而不是Time类来获取年份(如果只需要Date,则不需要考虑小时,分钟和秒)。
<%= Date.today.year %>
c.f. http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today     ,        我认为考虑申请时区的最好方法是:
Date.current.year
    ,        我喜欢使用:
Time.zone.now.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
的方法可能是最好的选择。 在时区查看Ryan精彩的Railscast