Conversione di una stringa in una data in Groovy

1. Panoramica

In questo breve tutorial, impareremo come convertire una stringa che rappresenta una data in un vero oggetto Date in Groovy.

Tuttavia, dobbiamo tenere presente che questo linguaggio è un miglioramento di Java. Pertanto, possiamo ancora utilizzare tutti i vecchi metodi Java, oltre ai nuovi Groovy.

2. Utilizzo di DateFormat

In primo luogo, possiamo analizzare le stringhe in date, come al solito, utilizzando Java DateFormat :

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

Groovy, invece, ci permette di eseguire questa operazione più facilmente. Incapsula lo stesso comportamento all'interno del comodo metodo statico Date.parse (formato String, input String) :

def date = Date.parse(pattern, input) 

In breve, quel metodo è un'estensione dell'oggetto java.util.Date e internamente istanzia un java.text.DateFormat ad ogni invocazione, per la sicurezza dei thread.

2.1. Problemi di compatibilità

Per chiarire, il metodo Date.parse (String format, String input) è disponibile dalla versione 1.5.7 di Groovy.

La versione 2.4.1 ha introdotto una variante che accetta un terzo parametro che indica un fuso orario: Date.parse (formato stringa, input stringa, fuso orario) .

Dalla 2.5.0, tuttavia, c'è stato un cambiamento radicale e quei miglioramenti non vengono più forniti con groovy-all.

Quindi, andando avanti, devono essere inclusi come un modulo separato, chiamato groovy-dateutil :

 org.codehaus.groovy groovy-dateutil 2.5.6  

C'è anche la versione 3.0.0, ma è attualmente in fase Alpha.

3. Utilizzo di JSR-310 LocalDate

Dalla versione 8, Java ha introdotto una serie completamente nuova di strumenti da gestire con le date: l'API Data / Ora.

Queste API sono migliori per diversi motivi e dovrebbero essere preferite rispetto a quelle legacy .

Vediamo come sfruttare le funzionalità di analisi java.time.LocalDate da Groovy:

def date = LocalDate.parse(input, pattern) 

4. Conclusione

Abbiamo visto come trasformare una stringa in una data nel linguaggio Groovy, prestando attenzione alle peculiarità tra le versioni specifiche.

Come sempre, il codice sorgente e gli unit test sono disponibili su GitHub.