Konversi dari java.util.date ke JodaTime


249

Saya ingin mengonversi a java.util.Dateke JodaTimeuntuk melakukan pengurangan antara tanggal. Apakah ada cara ringkas yang baik untuk mengkonversi dari Dateke JodaTime?

Jawaban:


478
java.util.Date date = ...
DateTime dateTime = new DateTime(date);

Tapi pastikan datetidak null, jika tidak bertindak seperti new DateTime()- Saya benar - benar tidak suka itu.


9
Jadi pada dasarnya:DateTime dateTime = date==null?null:new DateTime(date);
Joeri Hendrickx

121
+1 untuk "jika tidak berfungsi seperti DateTime baru () - Saya benar-benar tidak suka itu."
reevesy

1
@BabajidePrince No; maka Anda akan mendapatkan nilai yang sama dengan DateTime (null) baru, yang persis apa yang ingin kami hindari. Ekspresi dimaksudkan untuk mempertahankan null sebagai null, yang merupakan hal yang masuk akal di sebagian besar situasi.
Joeri Hendrickx

4
Ketahuilah bahwa Java Date adalah TimeZone independen sedangkan Joda DateTime memiliki Kronologi.
Cristian Vrabie

1
Ya, satu atau dua waktu jika null bertindak seperti DateTime () baru membuat saya sedikit anoyingness ...
buzzsawddog

13

http://joda-time.sourceforge.net/quickstart.html

Setiap kelas datetime menyediakan berbagai konstruktor. Ini termasuk konstruktor Obyek. Ini memungkinkan Anda untuk membuat, misalnya, DateTime dari objek berikut:

* Date - a JDK instant
* Calendar - a JDK calendar
* String - in ISO8601 format
* Long - in milliseconds
* any Joda-Time datetime class

16
@skaffman jika Anda ingin menghindari tanggal nol, Anda bisa menggunakan date.getTime (). Namun Anda akan mendapatkan pengecualian penunjuk nol yang mungkin lebih baik daripada gagal secara diam-diam.
Heathen

2
Saya bertanya-tanya mengapa mereka tidak hanya membebani konstruktor mereka untuk benda-benda itu.
Pieter De Bie

1
@PieterDeBie - karena sistemnya generik. Anda dapat mendaftarkan jenis objek Anda sendiri untuk dikonversi ke atau dari.
Jules
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.