summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-06 09:50:08 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-05-06 09:50:08 +0000
commite4b05d91eb0d48fd172abf015c493bb42d755d07 (patch)
tree3cf92cbab2f330ea3ba25904dd74c427356a3967 /lib
parentd85c226f73f5d59e03190ef8f29d316ea33f34e0 (diff)
* lib/time.rb (Time.make_time): Adjust the time zone of "now".
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r--lib/time.rb17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/time.rb b/lib/time.rb
index 31a93f932f..3728fef59c 100644
--- a/lib/time.rb
+++ b/lib/time.rb
@@ -251,8 +251,19 @@ class Time
raise ArgumentError, "no time information in #{date.inspect}"
end
+ off_year = year || now.year
+ off = nil
+ off = zone_offset(zone, off_year) if zone
+
+ if off
+ now = now.getlocal(off) if now.utc_offset != off
+ else
+ now = now.getlocal
+ end
+
usec = nil
usec = sec_fraction * 1000000 if sec_fraction
+
if now
begin
break if year; year = now.year
@@ -273,8 +284,10 @@ class Time
sec ||= 0
usec ||= 0
- off = nil
- off = zone_offset(zone, year) if zone
+ if year != off_year
+ off = nil
+ off = zone_offset(zone, year) if zone
+ end
if off
year, mon, day, hour, min, sec =