2015-07-03 2 views
-1

У меня есть Баш скрипт на cronjob, который будет проходить дата отформатированный как это:Validate формат даты в Рубине

DATE=`date +"%Y_%m_%d"` 

Мой рубин сценарий затем нужно проверить передается ли дата (в этом формате). Если он не использует текущую дату. В настоящее время у меня есть некоторые решения, и я думал, что это будет работать, но это не так. Мне все еще трудно понять, как работают Ruby.

begin 
    Time.parse ARGV[1],"%Y_%m_%d" 
rescue 
    puts "Invalid Date" 
ensure 
    $LOG = Time.now 
end 

ответ

1

Вы хотите [strptime] [1], который принимает параметр формата.

Time.strptime "2014_05_09", "%Y_%m_%d" 
=> 2014-05-09 00:00:00 -0400 
+0

привет, спасибо! это то, что я искал. Быстрый вопрос, как узнать, какое исключение вызывает конкретный метод в Ruby? Кажется, я не вижу эту информацию в документах? Я получаю, главным образом, фон C++/python, и поэтому у меня возникает соблазн «спасти» какое-то исключение, но я не уверен, что там происходит. – gandolf

+0

У Rubydoc нет этой информации, к сожалению, но вы можете ее протестировать. В этом случае, 'ArgumentError'. – Amadan

+0

Если формат не сопоставляется, то он выдает 'ArgumentError: недопустимый формат strptime -'% Y_% m_% d'' –

Смежные вопросы