[英]Converting java.time to Calendar
从java.time.Instant
或java.time.ZonedDateTime
获取Calendar
对象的最简单方法是什么?
如果您知道存在GregorianCalendar#from(ZonedDateTime)
方法的GregorianCalendar#from(ZonedDateTime)
,那么从ZonedDateTime
获取Calendar
即时非常简单。 在Threeten-dev邮件组中讨论了为什么该方法不在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
。
您需要使用瞬间获取TimeZone,然后您才能获得日历。
Calendar myCalendar = GregorianCalendar.from(ZonedDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()));
GregorianCalendar.from(ZonedDateTime.ofInstant(instant, zoneId))
怎么样?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.