Como mostrar o ano atual em vista?

104

Existe uma função que eu possa usar para mostrar o ano atual em uma visualização? eu tentei

<%= Time.now  %>

para tentar mostrar as horas, mas isso não funciona para mim.

Zakoff
fonte

Respostas:

44

Acho que a melhor maneira de obter o ano atual considerando o fuso horário do aplicativo é:

Date.current.year
homem livre
fonte
1
Acordado. Além disso, Date.currenté o mesmo que Time.zone.todayse config.time_zoneestiver definido.
Brian de
Esta é a melhor resposta. Date.current é o mais apropriado.
Mario
17

Eu gosto de usar:

Time.zone.now.year

Isso leva em consideração o fuso horário atual (caso você o tenha substituído para um determinado usuário).

stebooks
fonte
6

Apesar de já ter sido respondido, achei que pode ser útil para quem deseja ver os resultados de benchmark para todas as soluções 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)

Agora, pode parecer exagero para algo tão simples como isso, no entanto, de uma perspectiva de otimização simples para um aplicativo de alto rendimento, considerarei o uso Date.today.year

Dito isso, se seu aplicativo é sensível ao fuso horário, talvez Date.currentou Time.zonemétodos baseados sejam sua melhor aposta.

Confira este maravilhoso Railscast de Ryan sobre os fusos horários

Darkfish
fonte