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

时间:2017-01-05 08:40:35

标签: java android threetenbp

使用ThreeTen Android Backport库,将ZonedDateTimeOffsetDateTime转换为旧学校java.util.Date实例的最简单方法是什么?

如果我拥有完整的Java 8库,那当然就是这样做的方法(as in this question):

Date.from(zonedDateTime.toInstant());

但我无法在Android上使用它;特别是Date.from(Instant instant)缺失。

2 个答案:

答案 0 :(得分:11)

嗯,一个直截了当的方法是从纪元开始获得毫秒并从中创建日期:

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

如果有更好的方法,请随时指出。

答案 1 :(得分:6)

请参阅DateTimeUtils,它处理添加到java.util.Date等类的方法: http://www.threeten.org/threetenbp/apidocs/org/threeten/bp/DateTimeUtils.html

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

DateTimeUtils.toDate(zonedDateTime.toInstant())