java.util.dateからJodaTimeに変換する


249

a java.util.Dateをに変換して、JodaTime日付間の減算を実行します。変換するための良い簡潔な方法があるDateのではJodaTime

回答:


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

ていることを確認しdateていないnull、しかし、それ以外の場合は動作のようにnew DateTime()、私は- 本当にそれが好きではありません。


9
基本的に:DateTime dateTime = date==null?null:new DateTime(date);
Joeri Hendrickx

121
「そうでなければ、それはnew DateTime()のように動作します-私は本当にそれが好きではありません。」
Reevesy

1
@BabajidePrinceいいえ; 次に、新しいDateTime(null)と同じ値を取得します。これは、まさに回避したかったものです。この式は、nullをnullとして維持することを目的としています。これは、ほとんどの状況で意味があります。
Joeri Hendrickx 2013

4
Joda DateTimeには年表があるのに対し、Java DateはTimeZoneに依存しないことに注意してください。
クリスティアンヴラビー2013

1
はい、new DateTime()のように1つまたは2つのif nullアクションが私に少し迷惑をかけます...
buzzsawddog

13

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

各日時クラスは、さまざまなコンストラクタを提供します。これらには、Objectコンストラクターが含まれます。これにより、たとえば、次のオブジェクトからDateTimeを構築できます。

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

16
@skaffman nullの日付を避けたい場合は、代わりにdate.getTime()を使用できます。ヌルポインター例外が発生しますが、静かに失敗するよりも良い場合があります。
Heathen

2
彼らはなぜそれらのオブジェクトのコンストラクターをオーバーロードしなかったのかと思います。
Pieter De Bie 2015年

1
@PieterDeBie-システムが汎用的であるため。独自のオブジェクトタイプを登録して、変換を行うことができます。
ジュール、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.