簡體   English   中英

如何將Joda-Time DateTime轉換為java.util.Date,反之亦然?

[英]How to convert Joda-Time DateTime to java.util.Date and vice versa?

有可能嗎? 如果是,那么如何從Joda-Time轉換為Date ,反之亦然?

要將Java Date轉換為Joda DateTime : -

Date date = new Date();
DateTime dateTime = new DateTime(date);

反之亦然: -

Date dateNew = dateTime.toDate();

使用TimeZone ,如果需要: -

DateTime dateTimeNew = new DateTime(date.getTime(), timeZone);
Date dateTimeZone = dateTime.toDateTimeAtStartOfDay(timeZone).toDate();

您沒有在Joda Time中指定您感興趣的類型,但是:

Instant instant = ...;
Date date = instant.toDate();
instant = new Instant(date);
// Or...
instant = new Instant(date.getTime());

DateInstant都與時區無關,因此無需在此處指定。

LocalDateTime / LocalDate / LocalTime轉換為Date (反之亦然)是沒有意義的,因為這取決於所應用的時區。

使用DateTime您可以轉換 Date而不指定時區,但要從Date轉換為DateTime您應指定時區,否則它將使用系統默認時區。 (如果你真的想要那個,我會明確指出它,以明確它是一個慎重的選擇。)

例如:

DateTimeZone zone = DateTimeZone.forID("Europe/London");
Date date = ...;
DateTime dateTime = new DateTime(date.getTime(), zone);

要從Java Date轉換為Joda Date of Date:
要從Date轉換為DateTime時區需要指定。
要從java.util Date轉換為Joda Time of Date,您只需將java.util日期和時區傳遞給Joda Time of Date的構造函數。

java.util.Date date = new java.util.Date(System.currentTimeMillis());
DateTimeZone dtz = DateTimeZone.getDefault();// Gets the default time zone.
DateTime dateTime = new DateTime(date.getTime(), dtz);

要從Joda時間轉換為Java日期:
對於相反的情況,Joda DateTime有一個方法toDate() ,它將返回java.util Date。

DateTime jodaDate = new DateTime();
java.util.Date date = jodaDate.toDate();

詳情請訪問此處

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM