将 java.time 转换为 Calendar
从 or 获取对象的最简单方法是什么?Calendar
java.time.Instant
java.time.ZonedDateTime
从 or 获取对象的最简单方法是什么?Calendar
java.time.Instant
java.time.ZonedDateTime
从中获取即时信息非常简单,前提是您知道存在一个 GregorianCalendar#from(ZonedDateTime)
方法。在 Threeten-dev 邮件组中有一个讨论,关于为什么该方法不在课堂上。虽然不是一个非常深入的讨论。Calendar
ZonedDateTime
Calendar
但是,没有直接的方法可以从 转换为 。你必须有一个中间状态:Instant
Calendar
Instant instant = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
Calendar cal1 = GregorianCalendar.from(zdt);
这可能是因为,从本 oracle 教程的表中可以明显看出,映射到 而不是 .同样,映射到 .Instant
Date
Calendar
ZonedDateTime
Calendar
您需要使用即时获取时区,然后才能获取日历。
Calendar myCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()));