如何使用ThreeTenABP将ZonedDateTime/OffsetDateTime转换为Date?

2022-09-01 21:55:39

使用ThreeTen Android Backport库,将或转换为老式实例的最简单方法是什么?ZonedDateTimeOffsetDateTimejava.util.Date

如果我有完整的Java 8库供我使用,这当然是做到这一点的方法(就像这个问题一样):

Date.from(zonedDateTime.toInstant());

但是我不能在Android上使用它;特别是Date.from(Instant instant)丢失了。


答案 1

好吧,一种简单的方法是从epoch开始获取毫秒,并从中创建日期:

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

随意指出是否有更好的方法。


答案 2

查看哪个处理添加到类中的方法,例如:http://www.threeten.org/threetenbp/apidocs/org/threeten/bp/DateTimeUtils.htmlDateTimeUtilsjava.util.Date

编辑:使用这个,完整的代码将是:

DateTimeUtils.toDate(zonedDateTime.toInstant())

推荐