Saya membuat sistem berbasis web yang akan digunakan di negara-negara dari seluruh dunia. Salah satu jenis data yang harus disimpan adalah tanggal dan waktu.
Apa pro dan kontra dari penggunaan kelas tanggal dan waktu Java dibandingkan dengan perpustakaan pihak ketiga seperti waktu Joda ? Saya kira perpustakaan pihak ketiga ini ada karena alasan yang bagus, tapi saya sendiri belum pernah membandingkannya.
Jawaban:
EDIT: Sekarang Java 8 telah dirilis, jika Anda dapat menggunakannya, lakukanlah!
java.time
bahkan lebih bersih daripada Joda Time, dalam pandangan saya. Namun, jika Anda macet sebelum Java-8, baca terus ...Max meminta pro dan kontra menggunakan Joda ...
Pro:
java.time
di Java 8, karena mereka setidaknya agak miripCons:
DateTimeZoneBuilder
efektif di masa lalu. Ini adalah kasus penggunaan yang sangat langka.Untuk menanggapi gagasan oxbow_lakes untuk secara efektif membangun API kecil Anda sendiri, berikut adalah pandangan saya mengapa ini adalah ide yang buruk:
sumber
java.time.*
Jawa 6 dan 7: threeten.org/threetenbpNah, kecuali Anda berniat menunggu Java 8, berharap bahwa mereka akan menerapkan API yang lebih baik untuk memanipulasi tanggal dan waktu, ya, tolong, gunakan Joda-Time . Ini menghemat waktu dan menghindari banyak sakit kepala.
sumber
Jawabannya adalah: itu tergantung
JODA (dan JSR-310) adalah perpustakaan tanggal / waktu yang berfungsi penuh, termasuk dukungan untuk digunakan dengan beberapa sistem kalender.
Secara pribadi saya menemukan JODA sebagai langkah terlalu jauh dalam hal kompleksitas untuk apa yang saya butuhkan. 2 kesalahan utama (IMHO) di java standar
Date
danCalendar
kelas adalah:Meskipun ini ditangani oleh JODA, Anda akan menemukan cukup mudah untuk menggulung kelas Anda sendiri untuk
YearMonthDay
danInstant
, yang keduanya menggunakan kelas java di bawah tenda untuk perhitungan "kalender" yang sebenarnya. Maka Anda tidak perlu membiasakan diri dengan API>> 100 kelas, mekanisme pemformatan / penguraian yang berbeda dll.Tentu saja, jika Anda benar-benar membutuhkan representasi kronologis yang berbeda (misalnya bahasa Ibrani) atau ingin dapat mendefinisikan sistem Kalender imajiner Anda sendiri (misalnya untuk permainan yang Anda tulis), mungkin JODA atau JRS-310 cocok untuk Anda. Jika tidak, maka saya akan menyarankan bahwa menggulung sendiri mungkin adalah cara untuk pergi.
Lead spec JSR-310 adalah Stephen Colebourne yang menulis JODA di posisi pertama, sehingga secara logis akan menggantikan JODA.
sumber
Itu semua tergantung pada apa yang Anda lakukan dengan tanggal. Jika Anda hanya bertahan, mereka yang dibangun pada Java Tanggal mungkin akan melakukan semua yang Anda inginkan. Namun jika Anda melakukan manipulasi tanggal waktu yang luas, Anda mungkin lebih baik dengan Joda.
sumber
Anda harus menggunakan perpustakaan Joda-Time, karena:
representasi cara tanggal standar .
Exception in thread "main" org.joda.time.IllegalFieldValueException: Cannot parse "2014-02-31": Value 31 for dayOfMonth must be in the range [1,28].
Anda mungkin menyukai halaman ini untuk lebih jelasnya: http://swcodes.blogspot.com/
sumber