summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-21 18:08:47 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-04-21 18:08:47 +0000
commit8558ef6a5c04a673333a70cc481131d94b6a3b8e (patch)
tree3a6fce7f5f26e2fa76b106aeb470dcb3aa3fbb31
parent19292a5aff438ee2909b96b67fa32aa4514b27d8 (diff)
downloadruby-8558ef6a5c04a673333a70cc481131d94b6a3b8e.tar.gz
ruby-8558ef6a5c04a673333a70cc481131d94b6a3b8e.tar.xz
ruby-8558ef6a5c04a673333a70cc481131d94b6a3b8e.zip
* lib/time.rb (Time#rfc2822): pad leading zeros for year.
(Time#httpdate): ditto. (Time#xmlschema): ditto. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@23251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--lib/time.rb6
-rw-r--r--test/test_time.rb13
3 files changed, 22 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 407861ad8..539598bec 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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 da5bec9ff..37da4e381 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 01c86d72e..24afec1f2 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