Java 8 telah menambahkan antarmuka LocalDate dan Localtime. Mengapa Anda perlu mengembangkan set API baru yang menangani tanggal dan waktu? Karena java.util.Date lama sangat sulit digunakan.
java.util.date bulan dimulai dari 0, Januari adalah 0, Desember adalah 11, ini abnormal! java.time.localDate telah diubah menjadi enum selama berbulan -bulan dan minggu, jadi tidak mungkin untuk menggunakannya secara tidak benar.
JAVA.UTIL.Date maupun SimpleDateFormatter tidak aman, sedangkan LocalDate dan Localtime sama dengan string yang paling dasar, dan tidak hanya amannya utas, tetapi juga tidak dapat dimodifikasi.
java.util.date adalah "antarmuka universal" yang berisi tanggal, waktu, dan milidetik. Jika Anda hanya ingin menggunakan java.util.Date untuk menyimpan tanggal, atau hanya menyimpan waktu, maka hanya Anda yang tahu bagian data mana yang berguna dan bagian data mana yang tidak berguna. Dalam Java 8 yang baru, tanggal dan waktu dibagi dengan jelas menjadi lokal dan waktu lokal. Localdate tidak dapat berisi waktu dan waktu local tidak dapat berisi tanggal. Tentu saja, LocalDateTime dapat mencakup tanggal dan waktu.
Alasan mengapa antarmuka baru lebih baik adalah karena memperhitungkan pengoperasian tanggal dan waktu, dan sering terjadi ketika mendorong maju atau mundur selama beberapa hari. Menggunakan java.util.Date dengan kalender membutuhkan banyak kode untuk ditulis, dan pengembang biasa mungkin tidak dapat menulis dengan benar.
Localdate
Mari kita lihat cara menggunakan LocalDate baru:
// Dapatkan tanggal saat ini: LocalDate hari ini = localdate.now (); //-> 2014-12-24 // Dapatkan tanggal sesuai dengan tahun, bulan dan hari, Desember adalah 12: localdate crisismas = localdate.of (2014, 12, 25); //-> 2014-12-25 // Dapatkan tanggal saat ini sesuai dengan string: LocalDate endofbeb = localdate.parse ("2014-02-28"); // benar-benar verifikasi menurut ISO yyyy-mm-dd, 02 tidak diperbolehkan ditulis sebagai 2. Tentu saja, ada juga metode kelebihan beban yang memungkinkan Anda untuk mendefinisikan format sendiri Localdate.parse ("2014-02-29"); // Tanggal tidak valid tidak dapat diteruskan: DateTimeparseException: Tanggal tidak valid
Konversi tanggal sering ditemui, seperti:
// Ambil hari pertama bulan ini: LocalDate First Dayofthismonth = Today.with (TemporalAdjusters.Firstdayofmonth ()); // 2014-12-01 // Ambil hari kedua bulan ini: LocalDate SecondDayofthismonth = Today.withdayofmonth (2); // 2014-12-02 // Ambil hari terakhir bulan ini, dan Anda tidak perlu lagi menghitung apakah itu 28, 29, 30 atau 31: Localdate lastdayofthismonth = hari ini. Dengan (Temporaladjusters.LastdayOf Month ()); // 2014-12-31 // Ambil hari berikutnya: LocalDate firstdayof2015 = lastdayofthismonth.plusdays (1); // Ini menjadi 2015-01-01 // Ambil Senin pertama di Januari 2015, dan perhitungan ini menggunakan kalender untuk membunuh banyak sel otak: localdate firstMondayof2015 = localdate.parse ("2015-01-01"). Dengan (Temporaladjusters.firstinmonth (dayofweek.Monday); // 2015-01-05 Waktu setempat
Localtime hanya berisi waktu. Bagaimana saya bisa mewakili waktu dengan java.util.date sebelumnya? Jawabannya adalah, berpura -pura mengabaikan tanggal.
Localtime mengandung milidetik:
Localtime sekarang = localtime.now (); // 11: 09: 09.240
Anda mungkin ingin membersihkan milidetik:
LocalTime Now = LocalTime.now (). Withnano (0)); // 11:09:09
Waktu konstruksi juga sangat sederhana:
Localtime nol = localtime.of (0, 0, 0); // 00:00:00
Localtime mid = localtime.parse ("12:00:00"); // 12:00:00
Waktu juga diakui dalam format ISO, tetapi tiga format berikut dapat diidentifikasi:
• 12: 00
• 12: 01: 02
• 12: 01: 02.345
Jdbc
Pemetaan JDBC terbaru akan mengaitkan jenis tanggal dari database dengan jenis baru Java 8:
SQL -> Java
------------------------------------
Tanggal -> LocalDate
Waktu -> Localtime
Timestamp -> localDateTime
Tidak akan pernah ada lagi kasus di mana beberapa bagian dari tanggal atau waktu dipetakan ke java.util.Date di mana beberapa bagian dari tanggal atau waktu adalah 0.
Di atas adalah metode penanganan tanggal dan waktu di Java 8 diperkenalkan kepada Anda oleh editor. Saya harap ini akan membantu Anda. Jika Anda memiliki pertanyaan, silakan tinggalkan saya pesan dan editor akan membalas Anda tepat waktu. Terima kasih banyak atas dukungan Anda ke situs web Wulin.com!