mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
time.rb: fix parsing time zone in iso8601
* lib/time.rb (Time.xmlschema): the minute in time zone designator can be omitted together with the preceding colon. [ruby-core:87277] [Bug #14790] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63514 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
7b4671f030
commit
dc2a979b7f
2 changed files with 2 additions and 1 deletions
|
@ -571,7 +571,7 @@ class Time
|
||||||
T
|
T
|
||||||
(\d\d):(\d\d):(\d\d)
|
(\d\d):(\d\d):(\d\d)
|
||||||
(\.\d+)?
|
(\.\d+)?
|
||||||
(Z|[+-]\d\d:?\d\d)?
|
(Z|[+-]\d\d(?::?\d\d)?)?
|
||||||
\s*\z/ix =~ date
|
\s*\z/ix =~ date
|
||||||
year = $1.to_i
|
year = $1.to_i
|
||||||
mon = $2.to_i
|
mon = $2.to_i
|
||||||
|
|
|
@ -106,6 +106,7 @@ class TestTimeExtension < Test::Unit::TestCase # :nodoc:
|
||||||
s = "1996-12-19T16:39:57-08:00"
|
s = "1996-12-19T16:39:57-08:00"
|
||||||
assert_equal(t, Time.__send__(method, s))
|
assert_equal(t, Time.__send__(method, s))
|
||||||
assert_equal(t, Time.__send__(method, s.sub(/:(?=00\z)/, '')))
|
assert_equal(t, Time.__send__(method, s.sub(/:(?=00\z)/, '')))
|
||||||
|
assert_equal(t, Time.__send__(method, s.sub(/:00\z/, '')))
|
||||||
# There is no way to generate time string with arbitrary timezone.
|
# There is no way to generate time string with arbitrary timezone.
|
||||||
s = "1996-12-20T00:39:57Z"
|
s = "1996-12-20T00:39:57Z"
|
||||||
assert_equal(t, Time.__send__(method, s))
|
assert_equal(t, Time.__send__(method, s))
|
||||||
|
|
Loading…
Reference in a new issue