Ada banyak kelas yang terkait langsung dengan tanggal di Java. Yang paling umum digunakan adalah tanggal dan kalender di bawah paket java.util. Ketika Anda perlu menggunakan format ini, Anda juga akan menggunakan java.text.simpledateFormat.
Pertama -tama, izinkan saya mengeluh bahwa tanggal dan kalender sebenarnya agak canggung untuk digunakan. Saya tidak terbiasa dengan hal itu ketika saya pertama kali menggunakannya, dan saya selalu tidak bisa mengetahui penggunaan dan perbedaan spesifik antara kelas tanggal dan kalender.
Selain itu, metode set kelas kalender memiliki beberapa anti-humanitas saat menetapkan tanggal. Saat mengatur bulan, Anda selalu harus menebusnya dan mengurangi 1. Misalnya, jika Anda ingin mengaturnya ke 6 Januari 2018, Anda harus mengaturnya ke 2018, 0, 6, karena Januari diwakili oleh 0 di sini:
Kalender cal = calendar.getInstance (); cal.set (2018, 0, 8);
Untuk alasan spesifik, silakan merujuk ke jawabannya di sini: StackOverflow: Mengapa bulan Januari 0 di Kalender Java?
Bagaimanapun, saya tidak tahan. .
Beberapa hari yang lalu, ada persyaratan sederhana, yaitu untuk menghitung usia berdasarkan dua tanggal. Saya memeriksa internet dan secara langsung meninggalkan kelas kencan dan kalender yang sulit dan secara langsung menggunakan java.time.localDate. Tanpa basa -basi lagi, cukup unggah kode:
impor java.time.localDate; kelas publik testlocalDate {public static void main (string [] args) {localDate date1 = localdate.of (2018, 1, 6); DateDate Date2 = LocalDate.OF (1991, 1, 3); int usia = date2Til (date1) .getYears (); System.out.println ("Anda" + usia + "tahun."); }}Hasil output:
Anda berusia 27 tahun.
Panggilan konversi timbal balik yang sedikit kompleks dan luar biasa antara kelas dan kelas kalender ditinggalkan, dan kodenya juga sangat jelas. Bukankah itu sangat menyenangkan?
Java.Time adalah perpustakaan tanggal dan waktu yang baru diperkenalkan di Java 8. Metode berikut semuanya ada dalam paket java.time.
Mari kita lihat bagaimana kode ini menghitung perbedaan waktu dengan cara yang sederhana dan menyegarkan:
Pertama -tama, LocalDate adalah kelas yang tidak dapat diubah (kelas tidak dapat diubah), jadi seperti kelas string, Anda tidak perlu objek baru yang baru digunakan (?)
Lalu ada metode yang digunakan oleh kelas LocalDate untuk mengatur tanggal:
Lokal statis publik (tahun int, bulan bulan, int dayofonth) public static localdate dari (tahun int, bulan int, int dayofonth)
Ada tiga metode yang kelebihan beban secara total, dua di antaranya tercantum di sini. Kelas bulan pertama adalah jenis enum yang berisi nama bahasa Inggris bulan ini, seperti Januari, November, dll.
Yang kedua adalah pengaturan normal tahun, bulan dan hari. Berita baiknya adalah bahwa bulan di sini dimulai dari 1, yang berarti Anda tidak perlu lagi mengurangi 1 secara manual! Lai Lai
Berikut ini adalah metode hingga yang digunakan oleh kelas LocalDate untuk membandingkan tanggal:
Periode Publik sampai (ChronolocalDate EndDateExclusive)
Metode ini mengembalikan objek periode tipe.
Periode mewakili periode interval waktu yang berbentuk seperti "2 tahun, 3 bulan, 4 hari". Metode getYears berikutnya yang disebut milik kelas periode.
Akhirnya, mari kita lihat beberapa metode untuk mendapatkan interval waktu di kelas periode:
Public int getyears () public int getmonths () public int getDays ()
Ketiga metode ini digunakan untuk mendapatkan tahun, bulan dan hari interval waktu masing -masing. Ya, sesederhana itu.
Meringkaskan
Di atas adalah metode implementasi menggunakan LocalDate untuk menghitung usia berdasarkan tanggal di Java yang diperkenalkan oleh editor. Saya harap ini akan membantu semua orang. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas semua orang tepat waktu!