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/