Pretvaranje niza u datum u Groovyju

1. Pregled

U ovom kratkom vodiču naučit ćemo kako pretvoriti a Niz predstavljajući datum u stvarni Datum objekt u Groovyju.

Međutim, trebali bismo imati na umu da je ovaj jezik poboljšanje Jave. Stoga i dalje možemo koristiti svaku običnu staru Java metodu, uz novu Groovy.

2. Korištenje Oblik datuma

Prvo, možemo raščlaniti žice u datume, kao i obično, koristeći Javu Oblik datuma:

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

Međutim, Groovy nam omogućuje da ovu operaciju izvedemo lakše. Inkapsulira isto ponašanje unutar statičke metode praktičnostiDate.parse (format niza, unos niza):

def date = Date.parse (uzorak, ulaz) 

Ukratko, ta je metoda proširenje java.util.Datum objekt i interno uspostavlja a java.text.DateFormatnakon svakog poziva, radi sigurnosti niti.

2.1. Pitanja kompatibilnosti

Da pojasnim, Date.parse (format niza, unos niza) metoda je dostupna od verzije 1.5.7 programa Groovy.

Verzija 2.4.1 predstavila je varijantu koja prihvaća treći parametar koji označava vremensku zonu: Date.parse (format niza, unos niza, vremenska zona).

Međutim, od verzije 2.5.0 došlo je do velike promjene i ta se poboljšanja više ne isporučuju s groovy-all.

Dakle, idući naprijed, oni trebaju biti uključeni kao zasebni modul, nazvan groovy-dateutil:

 org.codehaus.groovy groovy-dateutil 2.5.6 

Tu je i verzija 3.0.0, ali trenutno je u fazi Alpha.

3. Korištenje JSR-310 LocalDate

Od verzije 8, Java je predstavila potpuno novi set alata za rukovanje datumima: Date / Time API.

Ovi su API-ji bolji iz nekoliko razloga i treba imati prednost nad naslijeđima.

Pogledajmo kako iskoristiti java.time.LocalDate mogućnosti raščlanjivanja iz Groovyja:

def date = LocalDate.parse (ulaz, uzorak) 

4. Zaključak

Vidjeli smo kako transformirati a Niz u a Datum na jeziku Groovy, obraćajući pažnju na posebnosti između pojedinih verzija.

Kao i uvijek, izvorni kod i jedinični testovi dostupni su na GitHub-u.


$config[zx-auto] not found$config[zx-overlay] not found