将java.time转换为Calendar

Dan*_*ral 16 java java-time

Calendarjava.time.Instant或获取对象的最简单方法是java.time.ZonedDateTime什么?

Roh*_*ain 18

得到一个Calendar瞬间从ZonedDateTime是相当直接的,只要你知道存在一个GregorianCalendar#from(ZonedDateTime)方法.在Threeten-dev邮件组中讨论了为什么该方法不在Calendar课堂上.虽然不是很深入的讨论.

但是,没有直接的方法从转换InstantCalendar.你必须有一个中间状态:

Instant instant = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
Calendar cal1 = GregorianCalendar.from(zdt);
Run Code Online (Sandbox Code Playgroud)

这可能是因为,从这个oracle教程的表中可以看出,是Instant映射Date而不是Calendar.同样,一张ZonedDateTime地图到Calendar.