简体   繁体   中英

How to convert ZonedDateTime/OffsetDateTime to Date using ThreeTenABP?

Using the ThreeTen Android Backport library, what is the simplest way to convert a ZonedDateTime or OffsetDateTime into an old-school java.util.Date instance?

If I had full Java 8 libs at my disposal, this of course would be the way to do it ( as in this question ):

Date.from(zonedDateTime.toInstant());

But I cannot use that on Android; specifically Date.from(Instant instant) is missing.

Well, one straightforward way is to get milliseconds since epoch and create the Date from that:

long epochMilli = zonedDateTime.toInstant().toEpochMilli();
Date date = new Date(epochMilli);

Feel free to point out if there's some preferable way.

See DateTimeUtils which handles the methods added to classes like java.util.Date : http://www.threeten.org/threetenbp/apidocs/org/threeten/bp/DateTimeUtils.html

Edit: using that, the complete code would be:

DateTimeUtils.toDate(zonedDateTime.toInstant())

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM