Member-only story
Bermain dengan Parse dan Format DateTime di Java 8
Haloo.. mau share dikit aja nih.. setelah bermain-main dengan DateTime di Android, mungkin untuk Anda yang sudah lama develop aplikasi Android, Anda mungkin tak asing dengan yang namanya SimpleDateFormat. Kira-kira penggunaannya seperti ini
//parse String to Date
val currentDf = SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss'Z'", Locale.UK)
currentDf.timeZone = TimeZone.getTimeZone("UTC")
val currentDate = currentDf.parse(currentDateString) as Date//format Date to String
val targetDf = SimpleDateFormat( "dd MMM yyyy | HH:mm", Locale.getDefault())
targetDf.timeZone = TimeZone.getTimeZone(targetTimeZone)
val targetDateString = targetDf.format(currentDate)
Setelah ulik-ulik lebih dalam lagi. Ternyata SimpleDateFormat ini sudah outdate alias tidak disarankan lagi. Hal ini karena ia tidak thread-safe ketika melakukan parsing atau formating. Selain itu dari sisi desain cantik, karena ia hanya mulai dari tahun 1900 dan untuk mendefinisikan menggunakan Calendar di mana hari dimulai 0 sedangkan untuk bulan dari 1. Aneh sekali, bukan?
Lalu, apa penggantinya? Checkitout…
Awalnya kita bisa menggunakan Joda-Time untuk mengatasi hal ini. Ia jauh lebih mudah digunakan daripada SimpleDateFormat dengan berbagai fitur tambahan seperti easy calculation, up-to-date timezone, support…