Time.parse seems to fail

Hi,

it’s seems to me the function Time.parse has an error:

ok - Time.parse(“12/01/2008”) => 2008-12-01
Error - Time.parse(“01.12.2008”) => 2008-01-12

Or is there an option/timezone I have to chnage, so it will work
correctly?

Greetings Claus-Christian Ude

Ok, some more details:

it’s seems to me the function Time.parse has an error:

ok - Time.parse(“12/01/2008”) => 2008-12-01
Error - Time.parse(“01.12.2008”) => 2008-01-12

Time.parse(“01.12.2008”) => 2008-12-01 whould be correct. I found
already the function _parse in lib/ruby/1.8/date/format.rb. But before I
change in this file, must be really sure, there is no other solution.

mfg

Ok, I have the solution. Here I correct the wrong function of
Date.parse:

class Date
class << self
alias :oldparse :_parse

def _parse(str, comp=false)
  if str =~ /(\d{1,2})\.(\d{1,2})\.(\d\d\d\d)\ (\d{1,2})\:(\d\d)/
    e       = Format::Bag.new
    e.mday  = $1.to_i
    e.mon   = $2.to_i
    e.year  = $3.to_i
    e.hour  = $4.to_i
    e.min   = $5.to_i
    return e.to_hash
  end
  if str =~ /(\d{1,2})\.(\d{1,2})\.(\d\d\d\d)/
    e       = Format::Bag.new
    e.mday  = $1.to_i
    e.mon   = $2.to_i
    e.year  = $3.to_i
    return e.to_hash
  end

  oldparse(str, comp)
end

end
end

2009/5/28 Claus-christian Ude [email protected]

Hi,

it’s seems to me the function Time.parse has an error:

ok - Time.parse(“12/01/2008”) => 2008-12-01
Error - Time.parse(“01.12.2008”) => 2008-01-12

My brain does not seem to be working well today, I cannot actually see
what
you are getting at. What would you expect the second one to give and
why?

Colin

On May 30, 8:48 am, Colin L. [email protected] wrote:

My brain does not seem to be working well today, I cannot actually see what
you are getting at. What would you expect the second one to give and why?

These things are ofter locale dependant. My european brain expects day
month year, but apparently in the US month ,day, year is more common.
If you are expecting dates in a particular format strptime is useful,
if not some sort of calendary widget is often a better idea.

Fred

Frederick C. wrote:

On May 30, 8:48�am, Colin L. [email protected] wrote:
If you are expecting dates in a particular format strptime is useful,
if not some sort of calendary widget is often a better idea.

Fred

Well yes, I already do so (calendar_select_date), but I get in the
controller-function as params the dd.mm.yyyy format. So
update_attributes convert the date automaticly, but it do it wrong
(mm.dd.yyyy), therefor I “repair” the Date.parse-Function.

mfg C-C

On Jun 1, 9:29 am, Claus-christian Ude <rails-mailing-l…@andreas-
s.net> wrote:

(mm.dd.yyyy), therefor I “repair” the Date.parse-Function.

if you’re guarenteed that the format you get in the controller is
going to be dd.mm.yyyy then strptime is probably the easiest way
(although just tearing the string up with a regexp wouldn’t be hard
either)

Fred