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

ruby-changes:8882

From: yugui <ko1@a...>
Date: Sun, 30 Nov 2008 18:25:30 +0900 (JST)
Subject: [ruby-changes:8882] Ruby:r20419 (ruby_1_9_1): merges r20365 from trunk into ruby_1_9_1.

yugui	2008-11-30 18:24:18 +0900 (Sun, 30 Nov 2008)

  New Revision: 20419

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=20419

  Log:
    merges r20365 from trunk into ruby_1_9_1.
    * add comment and test.

  Modified files:
    branches/ruby_1_9_1/lib/time.rb

Index: ruby_1_9_1/lib/time.rb
===================================================================
--- ruby_1_9_1/lib/time.rb	(revision 20418)
+++ ruby_1_9_1/lib/time.rb	(revision 20419)
@@ -84,8 +84,26 @@
     end
 
     def zone_utc?(zone)
-      # * +0000 means localtime. [RFC 2822]
-      # * GMT is a localtime abbreviation in Europe/London, etc.
+      # * +0000
+      #   In RFC 2822, +0000 indicate a time zone at Universal Time.
+      #   Europe/London is "a time zone at Universal Time" in Winter.
+      #   Europe/Lisbon is "a time zone at Universal Time" in Winter.
+      #   Atlantic/Reykjavik is "a time zone at Universal Time".
+      #   Africa/Dakar is "a time zone at Universal Time".
+      #   So +0000 is a local time such as Europe/London, etc.
+      # * GMT
+      #   GMT is used as a time zone abbreviation in Europe/London,
+      #   Africa/Dakar, etc.
+      #   So it is a local time.
+      #
+      # * -0000, -00:00
+      #   In RFC 2822, -0000 the date-time contains no information about the
+      #   local time zone.
+      #   In RFC 3339, -00:00 is used for the time in UTC is known,
+      #   but the offset to local time is unknown.
+      #   They are not appropriate for specific time zone such as
+      #   Europe/London because time zone neutral, 
+      #   So -00:00 and -0000 are treated as UTC.
       if /\A(?:-00:00|-0000|-00|UTC|Z|UT)\z/i =~ zone
         true
       else
@@ -741,6 +759,18 @@
       assert_equal(true, Time.rfc2822("Sat, 01 Jan 2000 00:00:00 UTC").utc?)
     end
 
+    def test_rfc2822_utc_roundtrip_winter
+      t1 = Time.local(2008,12,1)
+      t2 = Time.rfc2822(t1.rfc2822)
+      assert_equal(t1.utc?, t2.utc?, "[ruby-dev:37126]")
+    end
+
+    def test_rfc2822_utc_roundtrip_summer
+      t1 = Time.local(2008,8,1)
+      t2 = Time.rfc2822(t1.rfc2822)
+      assert_equal(t1.utc?, t2.utc?)
+    end
+
     def test_parse_leap_second
       t = Time.utc(1998,12,31,23,59,59)
       assert_equal(t, Time.parse("Thu Dec 31 23:59:59 UTC 1998"))

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

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