Issue #9794 has been updated by Yukihiro Matsumoto.

Tracker changed from Bug to Feature
Status changed from Rejected to Open

元々のリポートが「これはバグだ」、「当然対応すべきだ」という態度だったのは置いといて、実際に利便性があり、ほかに実害がない以上、機能拡張として対応したほうがいいと思います。

私が見落としてるのかもしれないけど、今までのふなばさんの主張で「対応すべきでない」理由はわかりませんでした。
「対応しなかった」理由はなんとなくわかりましたし、実際の利用例がなく、単に一貫性のためとかだったらこのまま放置でよかったと思いますが。

これを決定権がないとおっしゃるのであれば、私なんかも全然決定権がありませんね。決定がひっくり返されるのもしょっちゅうだし。

Matz.


----------------------------------------
Feature #9794: DateTime.strptime() doesn't work correctly for '%s %z'
https://bugs.ruby-lang.org/issues/9794#change-46519

* Author: Felipe Contreras
* Status: Open
* Priority: Low
* Assignee: tadayoshi funaba
* Category: ext
* Target version: 
----------------------------------------
Time.strptime() works correctly:

    Time.strptime('0 +0100', '%s %z').strftime('%s %z')
    => "0 +0100"

But DateTime.strptime() doesn't:

    DateTime.strptime('0 +0100', '%s %z').strftime('%s %z')
    => "0 +0000"

In Rubinious it does work correctly:

    DateTime.strptime('0 +0100', '%s %z').strftime('%s %z')
    => "0 +0100"

This make the RubySL date space fail:

    DateTime#strptime parses seconds and timezone correctly FAILED
    Expected "1970-01-01T00:00:00+00:00"
     to equal "1970-01-01T01:00:00+01:00"

In addition, both C and perl preserver the offset correctly when doing '%s %z'.

So it's very clear DateTime.strptime() has to be fixed.

Patch attached.

---Files--------------------------------
0001-datetime-fix-strptime-s-z.patch (1.94 KB)


-- 
https://bugs.ruby-lang.org/