Een string naar een datum converteren in Groovy

1. Overzicht

In deze korte tutorial leren we hoe je een Draad het vertegenwoordigen van een datum in een real Datum object in Groovy.

We moeten echter in gedachten houden dat deze taal een verbetering is van Java. Daarom kunnen we nog steeds elke gewone oude Java-methode gebruiken, naast de nieuwe Groovy-methoden.

2. Met behulp van Datumnotatie

Ten eerste kunnen we, zoals gewoonlijk, strings in datums parseren met behulp van Java Datumnotatie:

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

Met Groovy kunnen we deze handeling echter gemakkelijker uitvoeren. Het kapselt hetzelfde gedrag binnen de statische methode van gemak inDate.parse (String-indeling, String-invoer):

def date = Date.parse (patroon, invoer) 

Kortom, die methode is een uitbreiding van de java.util.Date object, en intern instantieert het een java.text.DateFormatbij elke aanroep, voor draadveiligheid.

2.1. Compatibiliteitsproblemen

Ter verduidelijking, de Date.parse (String-indeling, String-invoer) methode is beschikbaar sinds versie 1.5.7 van Groovy.

Versie 2.4.1 introduceerde een variant die een derde parameter accepteert die een tijdzone aangeeft: Date.parse (String-indeling, String-invoer, Tijdzone-zone).

Vanaf 2.5.0 is er echter een belangrijke wijziging opgetreden en die verbeteringen worden niet meer meegeleverd groovy-all.

Dus in de toekomst moeten ze worden opgenomen als een afzonderlijke module met de naam groovy-dateutil:

 org.codehaus.groovy groovy-dateutil 2.5.6 

Er is ook versie 3.0.0, maar deze bevindt zich momenteel in de Alpha-fase.

3. JSR-310 gebruiken LocalDate

Sinds versie 8 heeft Java een hele nieuwe set tools geïntroduceerd om met datums om te gaan: de Date / Time API.

Deze API's zijn om verschillende redenen beter en verdient de voorkeur boven de oude.

Laten we eens kijken hoe we het java.time.LocalDate ontledingsmogelijkheden van Groovy:

def date = LocalDate.parse (invoer, patroon) 

4. Conclusie

We hebben gezien hoe we een Draad in een Datum in de Groovy-taal, met aandacht voor de eigenaardigheden tussen de specifieke versies.

Zoals altijd zijn de broncode en unit-tests beschikbaar op GitHub.