Jawaban:
<%= Time.current.year %>
Saya lebih suka menggunakan kelas Tanggal untuk mendapatkan tahun daripada kelas Waktu (jika Anda hanya membutuhkan Tanggal, Anda tidak perlu mempertimbangkan jam, menit dan detik).
<%= Date.today.year %>
cf http://ruby-doc.org/stdlib-2.1.0/libdoc/date/rdoc/Date.html#method-c-today
Menurut saya cara terbaik untuk mendapatkan tahun ini dengan mempertimbangkan zona waktu aplikasi adalah:
Date.current.year
Meskipun itu sudah dijawab, saya pikir ini mungkin berguna bagi mereka yang ingin melihat hasil benchmark untuk semua solusi yang disarankan.
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)
Sekarang, mungkin terlihat berlebihan untuk sesuatu yang sederhana, namun, dari perspektif pengoptimalan sederhana untuk aplikasi throughput tinggi, saya akan mempertimbangkan untuk menggunakan Date.today.year
Jadi, jika aplikasi Anda sensitif terhadap Zona Waktu, mungkin Date.current
atau Time.zone
metode berbasis adalah pilihan terbaik Anda.
Lihat Railscast indah ini oleh Ryan di Zona Waktu
Date.current
sama sepertiTime.zone.today
jikaconfig.time_zone
disetel.