weird dates problem

HI, I have a pretty weird problems with dates. my objective was to parse some text files and put them into a database.

the lines of the file are divided with a | and some of the fields are dates in this format dd.mm.yyyy now in the parsing a get the system date to skip parsing elements in the past @date is the local date created with @date = Time.now.to_date params[:to] is the string from the file with the date in above format I did this with a simple

if params && ( params[:to].to_date > @date ) # nie parsujemy starych cennikow       Price.create_or_update params end

on my local enviroment everything works fine but on the remote host i get an invalid date ArgumentError

ruby version on host ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-linux] local ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]

any ideas? thanks in advance

HI, I have a pretty weird problems with dates. my objective was to parse some text files and put them into a database.

the lines of the file are divided with a | and some of the fields are dates in this format dd.mm.yyyy now in the parsing a get the system date to skip parsing elements in the past @date is the local date created with @date = Time.now.to_date params[:to] is the string from the file with the date in above format I did this with a simple

if params && ( params[:to].to_date > @date ) # nie parsujemy starych cennikow Price.create_or_update params end

on my local enviroment everything works fine but on the remote host i get an invalid date ArgumentError

Catch the error in your code and log or display the params[:to] that is causing it. Then you will likely see the problem. It is risky to convert strings to date without checking validity and taking appropriate action anyway.

Colin

sory for the long absence (holidays)

well the params[:to] is a date in this format 27.02.2010, but when i try to log params[:to].to_date I get an error NoMethodError( undefined method'' for nil:NilClass)

Le 07/04/2010 12:41, Adam a �crit :

sory for the long absence (holidays)

well the params[:to] is a date in this format 27.02.2010, but when i try to log params[:to].to_date I get an error NoMethodError( undefined method'' for nil:NilClass)

HI, I have a pretty weird problems withdates. my objective was to parse some text files and put them into a database.        the lines of the file are divided with a | and some of the fields are datesin this format dd.mm.yyyy now in the parsing a get the system date to skip parsing elements in the past @date is the local date created with @date = Time.now.to_date params[:to] is the string from the file with the date in above format I did this with a simple        if params && ( params[:to].to_date > @date ) # nie parsujemy starych cennikow      Price.create_or_update params end        on my local enviroment everything works fine but on the remote host i get an invalid date ArgumentError       

Catch the error in your code and log or display the params[:to] that is causing it. Then you will likely see the problem. It is risky to convert strings to date without checking validity and taking appropriate action anyway.

Colin

ruby version on host ruby 1.8.6 (2007-06-07 patchlevel 36) [i386-linux] local ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]        any ideas? thanks in advance        -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group athttp://groups.google.com/group/rubyonrails-talk?hl=en.       

Hi,

Assuming params[:to] is a string like "31.12.2007" you should try :

Date.parse(params[:to])

I've tried that too but stille get an argument error with invalid date, i've log the dates an they look fine (the format's ok) ;/ Really hate this kind of errors

I'll jutr try (for now) to make the dates by spliting the string and extracting every part of it and making a new Date obj. from those parts

With strptime you can specify the format: Date.strptime("07.04.2010", "%d.%m.%Y")