Die chronic gem bietet robuste Datum Parsing und werden ungültige Formate wie diejenigen behandeln Sie, wie gut erleben.
Sie können es mit installieren:
gem install chronic
oder in Ihrem Gemfile
:
gem "chronic"
Sie können die Daten aus Ihrem Beispiel analysieren, wie so:
book = page.css(".date").text
date = Chronic.parse(book)
Wenn das Datum ist ungültig, Chronic wird nil
zurückgeben. Dann müssen Sie nur sicherstellen, dass Ihr Code nil
-aware ist; jede Lösung, die mit ungültigen Daten befasst sein muss nil
-aware, so ist diese Anforderung nicht exklusiv für Chronic.
Das Chronische Juwel wurde seit einer Weile nicht aktualisiert, aber es ist immer noch relevant. Es deckt so viel Boden mit Datums-Parsing ab, dass Sie in der Lage sein werden, es für das Zitat einige Zeit zu verwenden. Zum Beispiel können Sie Daten in einer Vielzahl von Formaten finden (z. B. '12/13/99 ',' 2002-10-04 ',' 13. Mai 2007 '), und Chronic behandelt diejenigen, die nicht ins Schwitzen geraten. Der Ruby-Date-Parser unterstützt standardmäßig nur eine begrenzte Anzahl von Formaten. Sie müssen dafür benutzerdefinierten Code erstellen, um mehr Datumsformate zu erkennen.
In der akzeptierten Antwort für Ruby: List DateTime Format Options, ich habe gezeigt, wie eine DateParser
Klasse zu implementieren und zu verwenden, die auch Ergebnisse zur Verbesserung der Leistung zwischenspeichert; das ist eine Lektüre wert, da es unter solchen Umständen sicherlich hilft.
Dies ist kein gültiger Ruby-Code. –