Issue #10698 has been updated by Akira Tanaka.

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

Applied in changeset r49162.

----------
* time.c (timelocalw): Set tm_isdst field -1 if vtm->isdst is
  VTM_ISDST_INITVAL.  This bug is introduced at packing struct
  vtm (r45155).
  [ruby-core:67345] [Bug #10698] Reported by Boris Ruf.

----------------------------------------
Bug #10698: Time#local behaves differently during clock change
https://bugs.ruby-lang.org/issues/10698#change-50813

* Author: Boris Ruf
* Status: Closed
* Priority: Low
* Assignee: Nobuyoshi Nakada
* Category: lib
* Target version: current: 2.2.0
* ruby -v: ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
This is probably not a bug but since it changes previous behavior it should be noted somewhere.

Ruby 2.1.5:

~~~
>> ENV['TZ'] = 'Europe/Berlin'
=> "Europe/Berlin"
>> Time.local(2011,10,30,2,0,0).zone
=> "CET"
~~~

Ruby 2.2.0:

~~~
>> ENV['TZ'] = 'Europe/Berlin'
=> "Europe/Berlin"
>> Time.local(2011,10,30,2,0,0).zone
=> "CEST"
~~~

So in older Ruby versions the object represents the time **after** the clock change (within the extra hour), while in Ruby 2.2.0 it represents the time **before** time is set back.



-- 
https://bugs.ruby-lang.org/