From: nagachika00@... Date: 2014-03-10T02:21:05+00:00 Subject: [ruby-core:61396] [ruby-trunk - Feature #9549] [Assigned] Improvements to Time::strptime Issue #9549 has been updated by Tomoyuki Chikanaga. Status changed from Open to Assigned Assignee set to Akira Tanaka ---------------------------------------- Feature #9549: Improvements to Time::strptime https://bugs.ruby-lang.org/issues/9549#change-45708 * Author: Erik Michaels-Ober * Status: Assigned * Priority: Normal * Assignee: Akira Tanaka * Category: lib * Target version: current: 2.2.0 ---------------------------------------- I opened [a pull request on GitHub](https://github.com/ruby/ruby/pull/540) a few days ago but wanted to open a parallel issue here, since I think this is the preferred tracker. This patch includes three commits: * Add default arguments to `Time::strptime` to match `Date::strptime`. After this patch, `Time::strptime` may be invoked with 0, 1, or 2 arguments. When invoked with 0 or 1, it produces a result equivalent to `Date::strptime` invoked with the same arguments. * Raise ArgumentError if time passed to `Time::strptime` is invalid. This fixes a Ruby bug and adds a test to ensure it will not regress. Before this commit: require 'date' Date::strptime('31/02/2014', '%d/%m/%Y') # ArgumentError: invalid date require 'time' Time::strptime('31/02/2014', '%d/%m/%Y') # 2014-03-03 00:00:00 +0000 * I have also renamed variables in `Time::parse` to be consistent with the changes I made to `Time::strptime`. Specifically, renaming `d` to `hash`, since it is not a `Date` and renaming the `date` parameter to `time`. I believe both of these changes make the code clearer. Thank you for considering this patch. ---Files-------------------------------- 540.patch (4.71 KB) -- http://bugs.ruby-lang.org/