Відповіді:
<%= Time.current.year %>
Я вважаю за краще використовувати клас Date, щоб отримати рік, ніж часовий клас (якщо вам потрібна лише дата, вам не потрібно враховувати години, хвилини та секунди).
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
Незважаючи на те, що на нього вже відповіли, я вважав, що це може стати в нагоді тим, хто хоче переглянути результати орієнтирів для всіх запропонованих рішень.
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
на основі методів найкраща ставка.
Перевірте цей чудовий Railscast від Райана на часових зонах
Date.current
це те саме, щоTime.zone.today
якщоconfig.time_zone
встановлено.