From: "nobu (Nobuyoshi Nakada)" Date: 2013-10-19T04:27:37+09:00 Subject: [ruby-core:57935] [ruby-trunk - Bug #9032][Third Party's Issue] Time.round reverts the DST status of the time Issue #9032 has been updated by nobu (Nobuyoshi Nakada). Status changed from Feedback to Third Party's Issue It's not Time class object, but ActiveSupport::TimeWithZone. It seems handling local time and time zone separately, so it is impossible to resolve the timezone from local time only, because 02:30:00 will come twice in at 2013-10-27, CEST and CET. This is a miss-design of ActiveSupport::TimeWithZone. ---------------------------------------- Bug #9032: Time.round reverts the DST status of the time https://bugs.ruby-lang.org/issues/9032#change-42515 Author: mayanks (Mayank Sharma) Status: Third Party's Issue Priority: Normal Assignee: Category: Target version: ruby -v: ruby 2.0.0p0 (2013-02-24 revision 39474) [x86_64-darwin11.4.2] Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN =begin If the time is in non-DST and round method is applied, then the resulting time goes back to DST time. This happens only during the 1 hour when time goes back. Following example should explain the situation better. 2.0.0-p0 :057 > d => Sun, 27 Oct 2013 02:30:00 CET +01:00 2.0.0-p0 :058 > d.isdst => false 2.0.0-p0 :059 > d.round(3) => Sun, 27 Oct 2013 02:30:00 CEST +02:00 2.0.0-p0 :060 > d.round(3).isdst => true I have set the priority Urgent as the DST is going to elapse in 10 days from now. =end -- http://bugs.ruby-lang.org/