Project

General

Profile

Feature #10459 ยป rfc3339.patch

Antiarchitect (Andrey Voronkov), 10/30/2014 11:09 AM

View differences:

lib/time.rb (working copy)
# === Converting to a String
#
# t = Time.now
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
# t.rfc2822 # => "Wed, 05 Oct 2011 22:26:12 -0400"
# t.httpdate # => "Thu, 06 Oct 2011 02:26:12 GMT"
# t.rfc3339(9) # => "2011-10-05T22:26:12.996992609-04:00"
# t.rfc3339 # => "2011-10-05T22:26:12-04:00"
# t.iso8601(9) # => "2011-10-05T22:26:12.996992609-04:00"
# t.iso8601 # => "2011-10-05T22:26:12-04:00"
# t.rfc2822 # => "Wed, 05 Oct 2011 22:26:12 -0400"
# t.httpdate # => "Thu, 06 Oct 2011 02:26:12 GMT"
#
# === Time.parse
#
......
end
end
alias iso8601 xmlschema
alias rfc3339 xmlschema
end # class << self
#
test/test_time.rb (working copy)
def test_rfc3339
t = Time.utc(1985, 4, 12, 23, 20, 50, 520000)
s = "1985-04-12T23:20:50.52Z"
assert_equal(t, Time.iso8601(s))
assert_equal(s, t.iso8601(2))
assert_equal(t, Time.rfc3339(s))
assert_equal(s, t.rfc3339(2))
t = Time.utc(1996, 12, 20, 0, 39, 57)
s = "1996-12-19T16:39:57-08:00"
assert_equal(t, Time.iso8601(s))
assert_equal(t, Time.rfc3339(s))
# There is no way to generate time string with arbitrary timezone.
s = "1996-12-20T00:39:57Z"
assert_equal(t, Time.iso8601(s))
assert_equal(s, t.iso8601)
assert_equal(t, Time.rfc3339(s))
assert_equal(s, t.rfc3339)
t = Time.utc(1990, 12, 31, 23, 59, 60)
s = "1990-12-31T23:59:60Z"
assert_equal(t, Time.iso8601(s))
assert_equal(t, Time.rfc3339(s))
# leap second is representable only if timezone file has it.
s = "1990-12-31T15:59:60-08:00"
assert_equal(t, Time.iso8601(s))
assert_equal(t, Time.rfc3339(s))
begin
Time.at(-1)
......
else
t = Time.utc(1937, 1, 1, 11, 40, 27, 870000)
s = "1937-01-01T12:00:27.87+00:20"
assert_equal(t, Time.iso8601(s))
assert_equal(t, Time.rfc3339(s))
end
end
    (1-1/1)