2013-07-22 21 views
5

Próbuję dowiedzieć się, dlaczego ciągle otrzymuję komunikat o błędzie invalid date dla pewnych dat.Railsy Niepoprawny błąd daty

Na przykład:

to działa:

e = "07/02/2013" 
=> "07/02/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-01 00:00:00" 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
=> "2013-07-02 23:59:59" 

ta zwraca ArgumentError: invalid date

e = "07/18/2013" 
=> "07/18/2013" 
start_date = DateTime.parse(e).beginning_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):53:in `parse' 
end_date = DateTime.parse(e).end_of_day.strftime("%Y-%d-%m %H:%M:%S") 
ArgumentError: invalid date 
from (irb):55:in `parse' 

Używam ten sam format daty w obu przypadkach. Co może być przyczyną tego/Co muszę zmienić, aby to naprawić?

+1

Zobacz odpowiedź @ErminDedovic. Zauważ, że w twoim przykładzie "7/2/2013" twoje wyjście "strftime" to "2013-07-02" dla formatu "% Y%% d-% m", co nie jest tym, czego chciałeś (* tj. *, tak naprawdę "nie działa" tak, jak wskazałeś). – lurker

Odpowiedz

4

Format daty to dd/mm/rrrr. Próbujesz utworzyć datę 7 dnia 18 miesiąca 2013.

Możesz użyć strptime, jeśli chcesz dostosować swój format daty.