[前][次][番号順一覧][スレッド一覧]

ruby-changes:51612

From: nobu <ko1@a...>
Date: Mon, 2 Jul 2018 16:46:42 +0900 (JST)
Subject: [ruby-changes:51612] nobu:r63823 (trunk): time.c: [DOC] Time#localtime

nobu	2018-07-02 16:46:38 +0900 (Mon, 02 Jul 2018)

  New Revision: 63823

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=63823

  Log:
    time.c: [DOC] Time#localtime
    
    * time.c: state that Time#localtime does nothing when nothing
      changes.  [ruby-core:87675] [Bug #14880]

  Modified files:
    trunk/spec/ruby/core/time/localtime_spec.rb
    trunk/test/ruby/test_time_tz.rb
    trunk/time.c
Index: spec/ruby/core/time/localtime_spec.rb
===================================================================
--- spec/ruby/core/time/localtime_spec.rb	(revision 63822)
+++ spec/ruby/core/time/localtime_spec.rb	(revision 63823)
@@ -90,6 +90,19 @@ describe "Time#localtime" do https://github.com/ruby/ruby/blob/trunk/spec/ruby/core/time/localtime_spec.rb#L90
 
       t.utc_offset.should == -18000
     end
+
+    it "does nothing if already in a local time zone" do
+      time = with_timezone("America/New_York") do
+        break Time.new(2005, 2, 27, 22, 50, 0)
+      end
+      zone = time.zone
+
+      with_timezone("Europe/Amsterdam") do
+        time.localtime
+      end
+
+      time.zone.should == zone
+    end
   end
 
   describe "with an argument that responds to #to_str" do
Index: time.c
===================================================================
--- time.c	(revision 63822)
+++ time.c	(revision 63823)
@@ -3405,6 +3405,9 @@ time_localtime(VALUE time) https://github.com/ruby/ruby/blob/trunk/time.c#L3405
  *
  *     t.localtime("+09:00")                   #=> 2000-01-02 05:15:01 +0900
  *     t.utc?                                  #=> false
+ *
+ *  If +utc_offset+ is not given and _time_ is local time, just return
+ *  the receiver.
  */
 
 static VALUE
Index: test/ruby/test_time_tz.rb
===================================================================
--- test/ruby/test_time_tz.rb	(revision 63822)
+++ test/ruby/test_time_tz.rb	(revision 63823)
@@ -105,6 +105,17 @@ class TestTimeTZ < Test::Unit::TestCase https://github.com/ruby/ruby/blob/trunk/test/ruby/test_time_tz.rb#L105
     assert_equal(expected, real, m)
   end
 
+  def test_localtime_zone
+    t = with_tz("America/Los_Angeles") {
+      Time.local(2000, 1, 1)
+    }
+    z1 = t.zone
+    z2 = with_tz(tz="Asia/Singapore") {
+      t.localtime.zone
+    }
+    assert_equal(z2, z1)
+  end
+
   def test_america_los_angeles
     with_tz(tz="America/Los_Angeles") {
       assert_time_constructor(tz, "2007-03-11 03:00:00 -0700", :local, [2007,3,11,2,0,0])

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]