diff --git a/ChangeLog b/ChangeLog index e93271b4b8..f5649c4bbe 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Fri Jun 6 00:05:33 2008 Tanaka Akira + + * lib/time.rb (Time.xmlschema): don't use float. fix + http://rubyforge.org/tracker/index.php?func=detail&group_id=426&atid=1698&aid=20504 + Thu Jun 5 23:56:18 2008 Yusuke Endoh * test/ruby/test_gc.rb: add tests to achieve over 90% test coverage of diff --git a/lib/time.rb b/lib/time.rb index b306d0a452..49c07c6214 100644 --- a/lib/time.rb +++ b/lib/time.rb @@ -384,7 +384,9 @@ class Time min = $5.to_i sec = $6.to_i usec = 0 - usec = $7.to_f * 1000000 if $7 + if $7 + usec = Rational(($7[1..-1] + '000000000')[0,9].to_i, 1000) + end if $8 zone = $8 year, mon, day, hour, min, sec = @@ -645,6 +647,8 @@ if __FILE__ == $0 t = Time.utc(1960, 12, 31, 23, 0, 0, 123456) assert_equal("1960-12-31T23:00:00.123456Z", t.xmlschema(6)) end + + assert_equal(249, Time.xmlschema("2008-06-05T23:49:23.000249+09:00").usec) end def test_completion