Die parse
Methode versucht, passende Datum oder Zeitformate zu finden, Analysieren Sie dann die Zeichenfolge, um die Werte zurückzugeben, die zum Erstellen eines neuen Datums oder DateTime verwendet wurden. Es gibt viele verschiedene Formate, die unterstützt werden, was praktisch ist, aber der Vorgang des Scannens, um eine Übereinstimmung zu finden, verlangsamt die Analysezeit.
Auch einige gängige Formate sind nicht notwendig "passen". Überlegen Sie, was passiert hier:
Date.parse '31/01/2001'
=> #<Date: 2001-01-31 ((2451941j,0s,0n),+0s,2299161j)>
Das Datum Zeichenfolge in '%d/%m/%Y'
(Tag, Monat, Jahr) Format analysiert wird, obwohl es in den USA nicht üblich ist, weil Rubin kein US-centric Sprache. Die Umkehr der ersten beiden Felder ergibt:
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'
Anstelle von 'sub' oder' gsub' verwenden Sie 'tr ('.', '')'. Es ist schneller und wird dasselbe erreichen. –
... oder 'my_string.delete ('.')'. –