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

On 1 April 2010 15:36, Adam [email protected] wrote:

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)

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

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

the lines of the file are divided with a | and some of the fields are
Price.create_or_update params

ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-linux]
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])


Aurélien AMILIN

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”)