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