Konvertieren eines Strings in ein Datum in Groovy

1. Übersicht

In diesem kurzen Tutorial erfahren Sie, wie Sie einen String, der ein Datum darstellt, in ein echtes Date- Objekt in Groovy konvertieren .

Wir sollten jedoch berücksichtigen, dass diese Sprache eine Erweiterung von Java ist. Daher können wir neben den neuen Groovy-Methoden auch weiterhin jede einfache alte Java-Methode verwenden.

2. Verwenden von DateFormat

Erstens können wir Strings wie gewohnt mit einem Java DateFormat in Dates analysieren :

def pattern = "yyyy-MM-dd" def input = "2019-02-28" def date = new SimpleDateFormat(pattern).parse(input) 

Mit Groovy können wir diesen Vorgang jedoch einfacher ausführen. Es kapselt dasselbe Verhalten in der statischen Convenience-Methode Date.parse (String-Format, String-Eingabe) :

def date = Date.parse(pattern, input) 

Kurz gesagt, diese Methode ist eine Erweiterung des Objekts java.util.Date und instanziiert intern aus Sicherheitsgründen bei jedem Aufruf eine Datei java.text.DateFormat .

2.1. Kompatibilitätsprobleme

Zur Verdeutlichung ist die Date.parse-Methode (String-Format, String-Eingabe) seit Version 1.5.7 von Groovy verfügbar.

In Version 2.4.1 wurde eine Variante eingeführt, die einen dritten Parameter akzeptiert, der eine Zeitzone angibt : Date.parse (String-Format, String-Eingabe, TimeZone-Zone) .

Ab 2.5.0 gab es jedoch eine bahnbrechende Änderung, und diese Verbesserungen werden nicht mehr mit groovy-all ausgeliefert.

In Zukunft müssen sie als separates Modul mit dem Namen groovy-dateutil aufgenommen werden :

 org.codehaus.groovy groovy-dateutil 2.5.6  

Es gibt auch Version 3.0.0, aber es befindet sich derzeit in der Alpha-Phase.

3. Verwenden von JSR-310 LocalDate

Seit Version 8 hat Java eine ganze Reihe neuer Tools für Datumsangaben eingeführt: die Datums- / Uhrzeit-API.

Diese APIs sind aus mehreren Gründen besser und sollten den älteren vorgezogen werden .

Mal sehen, wie Sie die Analysefunktionen von java.time.LocalDate von Groovy nutzen können:

def date = LocalDate.parse(input, pattern) 

4. Fazit

Wir haben gesehen, wie man einen String in der Groovy-Sprache in ein Datum umwandelt , wobei wir die Besonderheiten zwischen den einzelnen Versionen berücksichtigt haben.

Wie immer sind der Quellcode und die Unit-Tests auf GitHub verfügbar.