현재 연도를 어떻게 표시합니까?


104

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

<%= Time.now  %>

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

답변:




44

신청 시간대를 고려 하여 올해를 얻는 가장 좋은 방법 은 다음과 같습니다.

Date.current.year

1
동의합니다. 또한가 설정된 경우 Date.current와 동일 합니다. Time.zone.todayconfig.time_zone
Brian

이것이 최고의 답변입니다. Date.current가 가장 적합합니다.
Mario

17

나는 사용하고 싶다 :

Time.zone.now.year

이것은 현재 시간대를 고려합니다 (특정 사용자에 대해 재정의 한 경우).


6

이미 답변을 받았음에도 불구하고 모든 제안 된 솔루션에 대한 벤치 마크 결과를보고 싶은 사람들에게 유용 할 것이라고 생각했습니다.

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.