diff options
author | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 18:08:47 +0000 |
---|---|---|
committer | akr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-04-21 18:08:47 +0000 |
commit | d9dd33fc27fc2108e78dd60cc0b37042bd39f5fd (patch) | |
tree | 3a6fce7f5f26e2fa76b106aeb470dcb3aa3fbb31 | |
parent | 6df2f3d59c0222c3be5623cb03ab05c333d7f2bf (diff) | |
download | ruby-d9dd33fc27fc2108e78dd60cc0b37042bd39f5fd.tar.gz |
* lib/time.rb (Time#rfc2822): pad leading zeros for year.
(Time#httpdate): ditto.
(Time#xmlschema): ditto.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | lib/time.rb | 6 | ||||
-rw-r--r-- | test/test_time.rb | 13 |
3 files changed, 22 insertions, 3 deletions
@@ -1,3 +1,9 @@ +Wed Apr 22 03:06:56 2009 Tanaka Akira <akr@fsij.org> + + * lib/time.rb (Time#rfc2822): pad leading zeros for year. + (Time#httpdate): ditto. + (Time#xmlschema): ditto. + Wed Apr 22 02:10:48 2009 Tanaka Akira <akr@fsij.org> * lib/time.rb (Time#xmlschema): use subsec instead of nsec. diff --git a/lib/time.rb b/lib/time.rb index da5bec9ff3..37da4e381d 100644 --- a/lib/time.rb +++ b/lib/time.rb @@ -445,7 +445,7 @@ class Time # If +self+ is a UTC time, -0000 is used as zone. # def rfc2822 - sprintf('%s, %02d %s %d %02d:%02d:%02d ', + sprintf('%s, %02d %s %04d %02d:%02d:%02d ', RFC2822_DAY_NAME[wday], day, RFC2822_MONTH_NAME[mon-1], year, hour, min, sec) + @@ -477,7 +477,7 @@ class Time # def httpdate t = dup.utc - sprintf('%s, %02d %s %d %02d:%02d:%02d GMT', + sprintf('%s, %02d %s %04d %02d:%02d:%02d GMT', RFC2822_DAY_NAME[t.wday], t.day, RFC2822_MONTH_NAME[t.mon-1], t.year, t.hour, t.min, t.sec) @@ -498,7 +498,7 @@ class Time # Its default value is 0. # def xmlschema(fraction_digits=0) - sprintf('%d-%02d-%02dT%02d:%02d:%02d', + sprintf('%04d-%02d-%02dT%02d:%02d:%02d', year, mon, day, hour, min, sec) + if fraction_digits == 0 '' diff --git a/test/test_time.rb b/test/test_time.rb index 01c86d72e9..24afec1f21 100644 --- a/test/test_time.rb +++ b/test/test_time.rb @@ -45,6 +45,11 @@ class TestTimeExtention < Test::Unit::TestCase # :nodoc: } end + def test_encode_rfc2822 + t = Time.utc(1) + assert_equal("Mon, 01 Jan 0001 00:00:00 -0000", t.rfc2822) + end + def test_rfc2616 t = Time.utc(1994, 11, 6, 8, 49, 37) assert_equal(t, Time.httpdate("Sun, 06 Nov 1994 08:49:37 GMT")) @@ -69,6 +74,11 @@ class TestTimeExtention < Test::Unit::TestCase # :nodoc: Time.httpdate('Sunday, 23-Dec-07 11:22:33 GMT')) end + def test_encode_httpdate + t = Time.utc(1) + assert_equal("Mon, 01 Jan 0001 00:00:00 GMT", t.httpdate) + end + def test_rfc3339 t = Time.utc(1985, 4, 12, 23, 20, 50, 520000) s = "1985-04-12T23:20:50.52Z" @@ -165,6 +175,9 @@ class TestTimeExtention < Test::Unit::TestCase # :nodoc: assert_equal("1970-01-01T09:00:00.0123456789012345678+09:00", t.xmlschema(19)) assert_equal("1970-01-01T09:00:00.01234567890123456789+09:00", t.xmlschema(20)) + t = Time.utc(1) + assert_equal("0001-01-01T00:00:00Z", t.xmlschema) + begin Time.at(-1) rescue ArgumentError |