From: Hirotsugu Asari Date: 2010-06-09T07:34:16+09:00 Subject: [ruby-core:30680] Re: [Bug #3411] Time.local 1916,5,1 #=> 1916-04-30 23:00:00 +0100 --Apple-Mail-2--770975300 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jun 8, 2010, at 4:06 PM, Benoit Daloze wrote: >> Then maybe it is a platform problem >> or a zone problem (you are in -5, so it is likely not happening). >> Could someone checks on OSX with trunk and 1.9.2 ? >>=20 >> For my part I still get: >> $ ruby -e 'p Time.local 1916,5,1' >> 1916-04-30 23:00:00 +0100 >=20 > To clarify the problem: (first build from adding a day(86400), second > from Time.local) >> 5.times {|i| t=3DTime.local(1916,4,29)+i*86400; p t; d=3Di>1 ? = Time.local(1916,5,i-1) : Time.local(1916,4,29+i); p d; puts} > 1916-04-29 00:00:00 +0100 > 1916-04-29 00:00:00 +0100 >=20 > 1916-04-30 00:00:00 +0100 > 1916-04-30 00:00:00 +0100 >=20 > # So the time zone changes, and this probably cause the bug. > 1916-05-01 01:00:00 +0200 > 1916-04-30 23:00:00 +0100 >=20 > 1916-05-02 01:00:00 +0200 > 1916-05-02 00:00:00 +0200 >=20 > 1916-05-03 01:00:00 +0200 > 1916-05-03 00:00:00 +0200 >=20 I think this is most definitely a time zone thing: $ uname -a; TZ=3DEurope/Amsterdam ruby1.9 -e 'p Time.local 1916,5,1' Darwin aotearoa.local 10.3.0 Darwin Kernel Version 10.3.0: Fri Feb 26 = 11:58:09 PST 2010; root:xnu-1504.3.12~1/RELEASE_I386 i386 1916-04-30 23:00:00 +0020 Besides Europe/Amsterdam, Asia/Istanbul and Europe/Brussels return this = result on my machine.= --Apple-Mail-2--770975300 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=us-ascii
Then maybe it is a platform = problem
or a zone problem (you = are in -5, so it is likely not happening).
Could someone checks on OSX with trunk and 1.9.2 = ?

For my part I still get:
$ ruby -e 'p Time.local = 1916,5,1'
1916-04-30 23:00:00 = +0100

To clarify the problem: (first build from = adding a day(86400), second
from Time.local)
5.times {|i| t=3DTime.local(1916,4,29)+i*86400; p t; = d=3Di>1 ? Time.local(1916,5,i-1) : Time.local(1916,4,29+i); p d; = puts}
1916-04-29 00:00:00 +0100
1916-04-29 00:00:00 = +0100

1916-04-30 00:00:00 +0100
1916-04-30 00:00:00 = +0100

# So the time zone changes, and this probably cause the = bug.
1916-05-01 01:00:00 +0200
1916-04-30 23:00:00 = +0100

1916-05-02 01:00:00 +0200
1916-05-02 00:00:00 = +0200

1916-05-03 01:00:00 +0200
1916-05-03 00:00:00 = +0200


I think this is most definitely a time zone = thing:

$ uname -a; TZ=3DEurope/Amsterdam = ruby1.9 -e 'p Time.local 1916,5,1'
Darwin aotearoa.local = 10.3.0 Darwin Kernel Version 10.3.0: Fri Feb 26 11:58:09 PST 2010; = root:xnu-1504.3.12~1/RELEASE_I386 i386
1916-04-30 23:00:00 = +0020

Besides = Europe/Amsterdam, Asia/Istanbul and Europe/Brussels return this = result on my machine.
= --Apple-Mail-2--770975300--