Если вы не доверяете Date.parse
, чтобы волшебным образом сделать это правильно (я, конечно, не верю этому), я рекомендую вам использовать Date.strptime
, чтобы точно указать формат, который он должен анализировать:
require 'date'
Date.strptime "5 April 2011", '%d %B %Y'
#=> #<Date: 2011-04-05 (4911313/2,0,2299161)>
Коды, которые вы используете для указания формата, в основном совпадают с Time#strftime
.