Bug #11037
Updated by nobu (Nobuyoshi Nakada) over 9 years ago
According to: http://ruby-doc.org/stdlib-2.2.1/libdoc/time/rdoc/Time.html `Time#parse` Time#parse can take a 2nd parameter: > We can change the date used to infer our missing elements by passing a second object that responds to mon, day and year, such as `Date`, `Time` Date, Time or `DateTime`. DateTime. We can also use our own object. However, that is not correct: ~~~ruby <pre> irb(main):010:0> Time.parse('12:30 AM', Date.today) NoMethodError: undefined method `getlocal' for #<Date: 2015-04-07 ((2457120j,0s,0n),+0s,2299161j)> from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:262:in `make_time' from C:/mingw64/mingw64/local/ruby/lib/ruby/2.2.0/time.rb:364:in `parse' from (irb):10 from C:/mingw64/mingw64/local/ruby/bin/irb:11:in `<main>' ~~~ </pre> The problem is in `Time#make_time`, Time#make_time, lines 259 through 263: ~~~ruby <pre> if off now = now.getlocal(off) if now.utc_offset != off else now = now.getlocal end ~~~ </pre> The behavior the documentation does seem desirable, so the code above should check if the now parameter responds to `getlocal` getlocal or not (only `Time` Time does, `Date` Date and `DateTime` DateTime do not). Or of course the documentation should be updated to specify that a time object must be passed as the now parameter.