From 03becb13099c439f6aea5058546bc8b0b19b8db8 Mon Sep 17 00:00:00 2001 From: Jarkko Laine Date: Fri, 23 Mar 2012 11:10:14 +0200 Subject: [#5559] Do not black out the system timezone DST jump hour if Time.zone differs from that. The system timezone DST jump hour should not be blacked out by Time.zone.parse if current Time.zone does not do the jump at that time. Fixes #5559. --- activesupport/lib/active_support/values/time_zone.rb | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'activesupport/lib/active_support/values/time_zone.rb') diff --git a/activesupport/lib/active_support/values/time_zone.rb b/activesupport/lib/active_support/values/time_zone.rb index ce46c46092..18d6d9fc6f 100644 --- a/activesupport/lib/active_support/values/time_zone.rb +++ b/activesupport/lib/active_support/values/time_zone.rb @@ -268,7 +268,12 @@ module ActiveSupport date_parts = Date._parse(str) return if date_parts.empty? time = Time.parse(str, now) rescue DateTime.parse(str) + if date_parts[:offset].nil? + if date_parts[:hour] && time.hour != date_parts[:hour] + time = DateTime.parse(str) + end + ActiveSupport::TimeWithZone.new(nil, self, time) else time.in_time_zone(self) -- cgit v1.2.3