summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-22 09:20:38 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-04-22 09:20:38 +0000
commit59fadede2bbfa78362e81680e416fdce54e27baf (patch)
tree3168e7aa098a5d302fdad075687214b7fa75303f /ext
parentcb66eaab150fe8687c3b7b5bdd082c9016223b87 (diff)
merge revision(s) 54169: [Backport #12189]
* ext/date/date_core.c (datetime_to_time): preserve timezone info [Bug #12189] [Fix GH-1295] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@54694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext')
-rw-r--r--ext/date/date_core.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/ext/date/date_core.c b/ext/date/date_core.c
index b93d362bbd..da7d82a76a 100644
--- a/ext/date/date_core.c
+++ b/ext/date/date_core.c
@@ -8581,21 +8581,24 @@ date_to_datetime(VALUE self)
static VALUE
datetime_to_time(VALUE self)
{
- volatile VALUE dup = dup_obj_with_new_offset(self, 0);
+ volatile VALUE dup = dup_obj(self);
{
VALUE t;
get_d1(dup);
- t = f_utc6(rb_cTime,
+ t = rb_funcall(rb_cTime,
+ rb_intern("new"),
+ 7,
m_real_year(dat),
INT2FIX(m_mon(dat)),
INT2FIX(m_mday(dat)),
INT2FIX(m_hour(dat)),
INT2FIX(m_min(dat)),
f_add(INT2FIX(m_sec(dat)),
- m_sf_in_sec(dat)));
- return f_getlocal(t);
+ m_sf_in_sec(dat)),
+ INT2FIX(m_of(dat)));
+ return t;
}
}