diff options
-rw-r--r-- | strftime.c | 2 | ||||
-rw-r--r-- | test/ruby/test_time.rb | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/strftime.c b/strftime.c index 88cdb2198c..c3d600114f 100644 --- a/strftime.c +++ b/strftime.c @@ -547,7 +547,7 @@ rb_strftime_with_timespec(VALUE ftime, const char *format, size_t format_len, else { off = NUM2LONG(rb_funcall(vtm->utc_offset, rb_intern("round"), 0)); } - if (off < 0 || (off == 0 && (flags & BIT_OF(LEFT)))) { + if (off < 0 || (gmt && (flags & BIT_OF(LEFT)))) { off = -off; sign = -1; } diff --git a/test/ruby/test_time.rb b/test/ruby/test_time.rb index 4e8689bbda..5d2c7b71de 100644 --- a/test/ruby/test_time.rb +++ b/test/ruby/test_time.rb @@ -925,6 +925,12 @@ class TestTime < Test::Unit::TestCase assert_equal("-0000", t2000.strftime("%-z")) assert_equal("-00:00", t2000.strftime("%-:z")) assert_equal("-00:00:00", t2000.strftime("%-::z")) + + t = t2000.getlocal("+00:00") + assert_equal("+0000", t.strftime("%z")) + assert_equal("+0000", t.strftime("%-z")) + assert_equal("+00:00", t.strftime("%-:z")) + assert_equal("+00:00:00", t.strftime("%-::z")) end def test_strftime_padding |