Project

General

Profile

Actions

Bug #4090

closed

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

Added by tadf (tadayoshi funaba) over 13 years ago. Updated almost 13 years ago.

Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 1.9.3dev (2010-11-26 trunk 29941) [i686-linux]
Backport:
[ruby-dev:42631]

Description

=begin
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
=end

Actions #1

Updated by sorah (Sorah Fukumori) over 13 years ago

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

Time.new(2001,2,28,23,59,30,'+09:00') #=> 2001-02-28 23:59:30 0900
Time.new(2001,2,28,23,59,30,'-09:00') #=> 2001-02-28 23:59:30 -0900
Time.new(2001,2,28,23,59,30,'-13:00') #=> 2001-02-28 23:59:30 -1300
Time.new(2001,2,28,23,59,30,'-12:00') #=> 2001-02-29 23:59:30 -1200
=end

Actions #2

Updated by tadf (tadayoshi funaba) over 13 years ago

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

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

Actions #3

Updated by nobu (Nobuyoshi Nakada) over 13 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

=begin
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.

=end

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0