从Calendar
或java.time.Instant
获取java.time.ZonedDateTime
对象的最简单方法是什么?
最佳答案
如果您知道存在 Calendar
方法,则从ZonedDateTime
获取GregorianCalendar#from(ZonedDateTime)
即时消息非常简单。 Threeten-dev mail group中进行了讨论,说明为什么该方法不在Calendar
类中。虽然不是很深入的讨论。
但是,没有直接的方法可以从Instant
转换为Calendar
。您必须具有一个中间状态:
Instant instant = Instant.now();
ZonedDateTime zdt = ZonedDateTime.ofInstant(instant, ZoneId.systemDefault());
Calendar cal1 = GregorianCalendar.from(zdt);
从this oracle tutorial上的表可以明显看出,这可能是因为
Instant
映射到Date
而不是Calendar
。同样,ZonedDateTime
映射到Calendar
。关于java - 将java.time转换为Calendar,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28779179/