[ruby-on-rails-3] 현재 연도를 어떻게 표시합니까?

보기에서 현재 연도를 표시하는 데 사용할 수있는 기능이 있습니까? 나는 시도했다

<%= Time.now  %>

시간을 보여 주려고하지만 이것은 저에게 효과가 없습니다.



답변


답변

Time 클래스보다 연도를 얻기 위해 Date 클래스를 사용하고 싶습니다 (Date 만 필요한 경우 시간, 분 및 초를 고려할 필요가 없습니다).

<%= Date.today.year %>

cf 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를 확인하세요.


답변