Вы должны использовать класс DateTime
вместо Time
. (Возможно, вам придется require 'date'
и сначала установить гем activesupport
.)
Он гораздо более универсален, чем Time
и делает то, что вы хотите с DateTime.civil(2009,9 - 1,-1,0)
.
Передавая -1 для дня, вы получаете дату последнего дня месяца из второго аргумента, поэтому вы должны вычесть 1 из текущего месяца.
Если вы находитесь в Rails, вы можете просто сделать DateTime.civil(2009,9,1,0) - 1.day
и получить то, что вы хотите, с более понятным кодом.