Il metodo parse
tenta di trovare la data di corrispondenza o di formati di data-ora, quindi analizzare la stringa per restituire i valori utilizzati per creare una nuova data o data. Esistono molti formati diversi, il che è comodo, tuttavia il processo di scansione per trovare una corrispondenza rallenta il tempo di analisi.
Inoltre, alcuni formati di uso comune non "adattano" necessario. Considerate quello che sta succedendo qui:
Date.parse '31/01/2001'
=> #<Date: 2001-01-31 ((2451941j,0s,0n),+0s,2299161j)>
La stringa data '%d/%m/%Y'
(giorno, mese, anno) formato viene analizzato, anche se non è comune negli Stati Uniti, a causa di Ruby non è un linguaggio USA-centrica. L'inversione dei primi due campi ha come risultato:
Date.parse '01/31/2001'
ArgumentError: invalid date
from (irb):4:in `parse'
from (irb):4
from /Users/greg/.rbenv/versions/2.1.5/bin/irb:11:in `<main>'
irb(main):005:0> Date.parse '31/01/2001'
fonte
2014-11-23 07:10:57
Invece di 'sub' o' gsub', utilizzare 'tr ('.', '')'. È più veloce e realizzerà la stessa cosa. –
... o 'my_string.delete ('.')'. –