[Ruby 1.9-Bug#4090][Open] Time::new に時差を与えたとき、正しい日付が得られない事がある

Bug #4090: Time::new に時差を与えたとき、正しい日付が得られない事がある
http://redmine.ruby-lang.org/issues/show/4090

起票者: tadayoshi funaba
ステータス: Open, 優先度: Normal
ruby -v: ruby 1.9.3dev (2010-11-26 trunk 29941) [i686-linux]

Time::new に時差を与えたとき、正しい日付が得られない事がある。

Time.new(2001,2,28,23,59,30,‘-12:00’)
#=> 2001-02-29 23:59:30 -1200

と 28日ではなく、29日になります。

時差が、-12:00 である事が原因ではなくて、
ある場合に、new に時差を与えると起るようです。

Time.new(1970,2,28,23,59,30)
#=> 1970-02-28 23:59:30 -1200

Time.new(1970,2,28,23,59,30,‘-12:00’)
#=> 1970-02-29 23:59:30 -1200

チケット #4090 が更新されました。 (by Shota F.)

sora_hです。
+1200だからダメっていう感じがしますが…

チケット #4090 が更新されました。 (by tadayoshi funaba)

そういう意味ではなく、「new に時差を与えると」と書きましたが、
例で挙げたように、時差が new に与えられていないが、地方時が -12:00 であったからそうなった場合と
new に時差を与えた場合とで結果が異なっているようだ、という事を言っているわけです。

とりあえず、他でも再現が出来たという事は判りました。

チケット #4090 が更新されました。 (by Nobuyoshi N.)

ステータス OpenからClosedに変更
進捗 % 0から100に変更

This issue was solved with changeset r29951.
tadayoshi, thank you for reporting this issue.
Your contribution to Ruby is greatly appreciated.
May Ruby be with you.