From a72f9f34767f9f2a6e8b7e22251949e65d2fe39d Mon Sep 17 00:00:00 2001 From: tadf Date: Sun, 4 May 2014 20:56:28 +0000 Subject: * ext/date/date_core.c (rt_rewrite_frags): a new feature (not a bug fix) of strptime. applies offset even if the given date is not local time (%s and %Q). This is an exceptional feature and I do NOT recommend to use this at all. Thank you git community. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45822 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/date/test_date_strptime.rb | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'test') diff --git a/test/date/test_date_strptime.rb b/test/date/test_date_strptime.rb index 40d4e22a72..5270bc3c1c 100644 --- a/test/date/test_date_strptime.rb +++ b/test/date/test_date_strptime.rb @@ -493,4 +493,21 @@ class TestDateStrptime < Test::Unit::TestCase assert_equal(s0, s) end + def test_sz + d = DateTime.strptime('0 -0200', '%s %z') + assert_equal([1969, 12, 31, 22, 0, 0], [d.year, d.mon, d.mday, d.hour, d.min, d.sec]) + assert_equal(Rational(-2, 24), d.offset) + d = DateTime.strptime('9 +0200', '%s %z') + assert_equal([1970, 1, 1, 2, 0, 9], [d.year, d.mon, d.mday, d.hour, d.min, d.sec]) + assert_equal(Rational(2, 24), d.offset) + + d = DateTime.strptime('0 -0200', '%Q %z') + assert_equal([1969, 12, 31, 22, 0, 0], [d.year, d.mon, d.mday, d.hour, d.min, d.sec]) + assert_equal(Rational(-2, 24), d.offset) + d = DateTime.strptime('9000 +0200', '%Q %z') + assert_equal([1970, 1, 1, 2, 0, 9], [d.year, d.mon, d.mday, d.hour, d.min, d.sec]) + assert_equal(Rational(2, 24), d.offset) + + end + end -- cgit v1.2.3