1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* lib/time.rb (Time.rfc2822, Time#rfc2822): preserve localtimeness.

* lib/pp.rb: pretty_print_cycled is renamed to pretty_print_cycle.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2742 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
akr 2002-08-24 05:18:08 +00:00
parent 4b0f91401c
commit 9c4a482229
3 changed files with 47 additions and 12 deletions

View file

@ -212,7 +212,10 @@ class Time
year
end
Time.utc(year, mon, day, hour, min, sec) - zone_offset(zone)
t = Time.utc(year, mon, day, hour, min, sec)
offset = zone_offset(zone)
t = (t - offset).localtime if offset != 0 || zone == '+0000'
t
else
raise ArgumentError.new("not RFC 2822 compliant date: #{date.inspect}")
end
@ -303,7 +306,7 @@ class Time
where zone is [+-]hhmm.
If self is a UTC time, +0000 is used as zone.
If self is a UTC time, -0000 is used as zone.
=end
RFC2822_DAY_NAME = [
@ -319,7 +322,7 @@ class Time
day, RFC2822_MONTH_NAME[mon-1], year,
hour, min, sec) +
if utc?
'+0000'
'-0000'
else
off = utc_offset
sign = off < 0 ? '-' : '+'
@ -447,6 +450,32 @@ if __FILE__ == $0
Time.httpdate("Fri, 31 Dec 1999 23:59:59 GMT"))
end
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))
t = Time.utc(1996, 12, 20, 0, 39, 57)
s = "1996-12-19T16:39:57-08:00"
assert_equal(t, Time.iso8601(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)
t = Time.utc(1990, 12, 31, 23, 59, 60)
s = "1990-12-31T23:59:60Z"
assert_equal(t, Time.iso8601(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))
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))
end
# http://www.w3.org/TR/xmlschema-2/
def test_xmlschema
assert_equal(Time.utc(1999, 5, 31, 13, 20, 0) + 5 * 3600,