Respuestas:
<%= Time.current.year %>
Prefiero usar la clase Fecha para obtener el año que la clase Hora (si solo necesita la Fecha, no necesita considerar las horas, los minutos y los segundos).
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
Creo que la mejor manera de obtener el año actual considerando la zona horaria de la aplicación es:
Date.current.year
A pesar de que ya se ha respondido, pensé que podría ser útil para aquellos que quieran ver los resultados de referencia para todas las soluciones sugeridas.
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)
Ahora, tal vez pueda parecer exagerado para algo tan simple como eso, sin embargo, desde una perspectiva de optimización simple para una aplicación de alto rendimiento, consideraré usar Date.today.year
Dicho esto, si su aplicación es sensible a la zona horaria, tal vez Date.currento los Time.zonemétodos basados sean su mejor opción.
Mira este maravilloso Railscast de Ryan en Time Zones
Date.currentes lo mismo queTime.zone.todaysiconfig.time_zoneestá configurado.