From: Benoit Daloze Date: 2010-06-09T03:58:16+09:00 Subject: [ruby-core:30672] [Bug #3411] Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100 Bug #3411: Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100 http://redmine.ruby-lang.org/issues/show/3411 Author: Benoit Daloze Status: Open, Priority: Normal Category: core, Target version: 1.9.2 ruby -v: ruby 1.9.3dev (2010-06-08 trunk 28202) [x86_64-darwin10.3.0] Everything is in the title. My apologies if this is normal behavior, but I think is not. It is the only first day of a month of the 20th century to behave like this (and also the only day in -4000..4000 to not respect Time.local(y,m,d).day == d): (1901..2000).each { |year| (1..12).each { |month| p Time.local(year, month, 1) if Time.local(year, month, 1).day != 1 } } #=> 1916-04-30 23:00:00 +0100 1.8.7 gives: Time.local 1916,5,1 #=> Mon May 01 01:00:00 +0200 1916 I believe this also happen in 1.9.2RC, though I can not test it myself. ---------------------------------------- http://redmine.ruby-lang.org