Saya ingin mengonversi java.time.LocalDate
menjadi java.util.Date
tipe. Karena saya ingin mengatur tanggal JDateChooser
. Atau adakah pemilih tanggal yang mendukung java.time
tanggal?
372
Saya ingin mengonversi java.time.LocalDate
menjadi java.util.Date
tipe. Karena saya ingin mengatur tanggal JDateChooser
. Atau adakah pemilih tanggal yang mendukung java.time
tanggal?
Jawaban:
Itu mengasumsikan pemilih tanggal Anda menggunakan zona waktu default sistem untuk mengubah tanggal menjadi string.
sumber
atStartOfDay()
, karena itu mengubah nilai tanggal, seperti yang saya mengerti.Ini kelas utilitas yang saya gunakan untuk mengonversi
java.time
kelas yang lebih baru kejava.util.Date
objek dan sebaliknya:Diedit berdasarkan pada komentar @Oliv.
sumber
ZoneId.systemDefault()
bermasalah karena zona waktu berubah berdasarkan corse tahun ini. Jadi jika pada 01-Jan saya berada di zona waktu -05: 00 (tengah), tetapi kemudian pada 01-Juli saya berada di zona waktu -06: 00 (tengah hari) tidak akan menyebabkan hasil yang tidak akurat karena penghematan siang hari waktu?Anda dapat menggunakan
java.sql.Date.valueOf()
metode sebagai:Tidak perlu menambahkan waktu dan info zona waktu di sini karena mereka diambil secara implisit.
Lihat LocalDate ke java.util.Date dan sebaliknya konversi paling sederhana?
sumber
java.sql.Date
dimaksudkan untuk lapisan basis data, JDBC, JPA. Lapisan web (atau aplikasi klien apa pun) harus benar-benar bebas dari ketergantungan apa punjava.sql.*
.java.sql.Date
hanyajava.util.Date
dengan waktu yang ditentukan00:00:00
tetapi titik dalam perspektif desain adalah yangjava.sql.*
tidak dimaksudkan untuk lapisan depan yang berinteraksi dengan klien seperti Servlets / JSP.java.util.Date
di sisi Jawa danjava.sql.Timestamp
atau apa pun yang berlaku darijava.sql.*
di sisi JDBC .java.sql.*
kelas akan menjadi ketergantungan yang terpisah.java.time memiliki antarmuka Temporal yang dapat Anda gunakan untuk membuat objek Instan dari sebagian besar kelas waktu. Instan mewakili milidetik pada garis waktu di Zaman - referensi dasar untuk semua tanggal dan waktu lainnya.
Kita perlu mengonversi Tanggal menjadi ZonedDateTime, dengan Waktu dan Zona, untuk melakukan konversi:
sumber
Untuk membuat java.util.Date dari java.time.LocalDate , Anda harus melakukannya
Kode tersebut mungkin terlihat sebagai berikut:
sumber
toEpochSecond
ini diwarisi darijava.time.chrono.ChronoZonedDateTime
. Lihat docs.oracle.com/javase/8/docs/api/java/time/chrono/…Ini bekerja untuk saya:
https://docs.oracle.com/javase/8/docs/api/java/time/LocalDate.html#toString--
sumber
Solusi Kotlin:
1) Tempel fungsi ekstensi ini di suatu tempat.
2) Gunakan, dan jangan pernah google ini lagi.
sumber
sumber
Sederhana
sumber
sumber