问题: 如何转换 java.util.Date 或 java .util.Calendar 对象转换为适当的 java.time 框架类型?
答案:
进行转换java.util.Date 到 Instant,使用 toInstant 方法:
<code class="java">Instant instant = myUtilDate.toInstant();</code>
对于 java.util.Calendar 对象,使用 toInstant 方法:
<code class="java">Instant instant = myUtilCalendar.toInstant();</code>
要将 java.util.GregorianCalendar 转换为 ZonedDateTime,请使用 toZonedDateTime 方法:
<code class="java">if (myUtilCalendar instanceof GregorianCalendar) { GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar; ZonedDateTime zdt = gregCal.toZonedDateTime(); }</code>
从 OffsetDateTime 中提取 Instant 并使用它来创建 java.util.Date:
<code class="java">java.util.Date myUtilDate = java.util.Date.from(odt.toInstant());</code>
类似地,从 ZonedDateTime 中提取 Instant:
<code class="java">java.util.Date myUtilDate = java.util.Date.from(zdt.toInstant());</code>
使用 from 方法将 ZonedDateTime 转换为 GregorianCalendar:
<code class="java">java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt);</code>
从 LocalDate 到 ZonedDateTime 需要指定时区:
<code class="java">LocalDate localDate = zdt.toLocalDate(); ZonedDateTime zdt = localDate.atStartOfDay(zoneId);</code>
同样,对于 LocalTime:
<code class="java">LocalTime localTime = zdt.toLocalTime(); ZonedDateTime zdt = ZonedDateTime.of(localDate, localTime, zoneId);</code>
以上是如何在 java.util.Date 和 java.time 类型之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!