Mengonversi String menjadi Date di Groovy

1. Ikhtisar

Dalam tutorial singkat ini, kita akan belajar cara mengonversi String yang mewakili tanggal menjadi objek Tanggal nyata di Groovy.

Namun, perlu diingat bahwa bahasa ini merupakan penyempurnaan dari Java. Oleh karena itu, kami masih dapat menggunakan semua metode Java lama yang biasa, selain yang Groovy baru.

2. Menggunakan DateFormat

Pertama, kita bisa mengurai Strings menjadi Dates, seperti biasa, menggunakan Java DateFormat :

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

Groovy, bagaimanapun, memungkinkan kita melakukan operasi ini dengan lebih mudah. Ini merangkum perilaku yang sama di dalam metode statis kenyamanan Date.parse (format String, input String) :

def date = Date.parse(pattern, input) 

Singkatnya, metode tersebut merupakan perpanjangan dari objek java.util.Date , dan secara internal membuat instance java.text.DateFormat pada setiap pemanggilan, untuk keamanan thread.

2.1. Masalah Kompatibilitas

Untuk memperjelas, metode Date.parse (Format string, input String) tersedia sejak Groovy versi 1.5.7.

Versi 2.4.1 memperkenalkan varian yang menerima parameter ketiga yang menunjukkan zona waktu: Date.parse (Format string, input String, zona TimeZone) .

Dari 2.5.0, bagaimanapun, telah terjadi perubahan yang merusak dan peningkatan tersebut tidak dikirimkan lagi dengan groovy-all.

Jadi, ke depannya, mereka perlu dimasukkan sebagai modul terpisah, bernama groovy-dateutil :

 org.codehaus.groovy groovy-dateutil 2.5.6  

Ada juga versi 3.0.0, tetapi saat ini dalam tahap Alpha.

3. Menggunakan JSR-310 LocalDate

Sejak versi 8, Java memperkenalkan seperangkat alat baru untuk menangani tanggal: API Tanggal / Waktu.

API ini lebih baik karena beberapa alasan dan harus lebih disukai daripada yang lama .

Mari kita lihat cara mengeksploitasi kapabilitas parsing java.time.LocalDate dari Groovy:

def date = LocalDate.parse(input, pattern) 

4. Kesimpulan

Kami telah melihat cara mengubah String menjadi Date dalam bahasa Groovy, dengan memperhatikan keanehan antara versi tertentu.

Seperti biasa, kode sumber dan pengujian unit tersedia di GitHub.