Permalink
Browse files

date_core.c: preserve timezone

* ext/date/date_core.c (time_to_time): should preserve timezone
  info.  [ruby-core:74889] [Bug #12271]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
  • Loading branch information...
nobu committed Apr 12, 2016
1 parent 991c159 commit 456523e2ede3073767fd8cb73cc4b159c3608890
Showing with 24 additions and 2 deletions.
  1. +5 −0 ChangeLog
  2. +2 −2 ext/date/date_core.c
  3. +17 −0 test/date/test_date_conv.rb
View
@@ -1,3 +1,8 @@
Tue Apr 12 20:40:35 2016 Kaneko Yuichiro <spiketeika@gmail.com>
* ext/date/date_core.c (time_to_time): should preserve timezone
info. [ruby-core:74889] [Bug #12271]
Tue Apr 12 11:51:18 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* compile.c (new_label_body): initialize bit fields, since
View
@@ -8406,12 +8406,12 @@ dt_lite_jisx0301(int argc, VALUE *argv, VALUE self)
* call-seq:
* t.to_time -> time
*
* Returns a copy of self as local mode.
* Returns self.
*/
static VALUE
time_to_time(VALUE self)
{
return f_getlocal(self);
return self;
}
/*
@@ -3,6 +3,15 @@
require 'date'
class TestDateConv < Test::Unit::TestCase
def with_tz(tz)
old = ENV["TZ"]
begin
ENV["TZ"] = tz
yield
ensure
ENV["TZ"] = old
end
end
def test_to_class
[Time.now, Date.today, DateTime.now].each do |o|
@@ -22,6 +31,14 @@ def test_to_time__from_time
t2 = t.to_time.utc
assert_equal([2004, 9, 19, 1, 2, 3, 456789],
[t2.year, t2.mon, t2.mday, t2.hour, t2.min, t2.sec, t2.usec])
t = Time.new(2004, 9, 19, 1, 2, 3, '+03:00')
with_tz('Asia/Tokyo') do
t2 = t.to_time
assert_equal([2004, 9, 19, 1, 2, 3],
[t2.year, t2.mon, t2.mday, t2.hour, t2.min, t2.sec])
assert_equal(3 * 60 * 60, t2.gmt_offset)
end
end
def test_to_time__from_date

0 comments on commit 456523e

Please sign in to comment.