使用必须为32位的ruby 1.9.2p290,在将当前时间加上25年时似乎遇到了困难(但是加上24年就没有问题)。
now = Time.now
more_time = (24*365*24*60*60)
puts "more_time.class = #{more_time.class}"
later = now + more_time
now = Time.now
more_time = (25*365*24*60*60)
puts "more_time.class = #{more_time.class}"
later = now + more_time
结果:
more_time.class = Fixnum
more_time.class = Fixnum
ruby_time.rb:11:in `+': time + 788400000.000000 超出了时间范围 (RangeError) from ruby_time.rb:11
我是否遇到了2038年问题?但是在64位的ruby 1.9.2-p290中没有这个问题。