web-dev-qa-db-ja.com

DateTimeをDateに変換する方法

DateDateTimeに、またはその逆に変換するにはどうすればよいですか?

例えば。

Date dt = new Date();

これをDateTimeに隠したいと思います。

また

DateTime dtim = new DateTime();

それを日付に変換したいと思います。

22
user93796

これは Joda TimeDateTimeのことですか?もしそうなら、それは

dateTime.toDate()
42
skaffman

Date.getTime()を使用してUTCに変換すると思います。その後、他のオブジェクトでコンストラクタ/セッターを使用します。

0
akarnokd

スカフマンが上で言ったように

dateTime.toDate() 

トリックを行う必要があります。ただし、dateTimeオブジェクトのタイムゾーンがユーザーの現在のタイムゾーンと異なる場合、dateTime.toDate()はユーザーのタイムゾーンで日付オブジェクトを返します。すなわち

DateTime newDate = new DateTime().toDateTime(DateTimeZone.forID("America/Los_Angeles"));
System.out.println(newDate);
System.out.println(newDate.toDate());

これは印刷されます

2017-07-05T14:19:23.294-07:00

2017年7月5日水曜日15:19:23 MDT

私のシステム時間はMDTなので

0
AJC

タイムゾーンを失わずにDateTimeをDateに変換する場合は、最初にDateTimeをJoda LocalDateTimeに変換します。

DateTime dateTimeUtc = new DateTime(); //because my default timezone is UTC
DateTime dateTimeBerlin = dateTimeUtc.withZone(DateTimeZone.forID("Europe/Berlin"));
Date convertedDate = dateTimeBerlin.toLocalDateTime().toDate();
0
Thilo