首页 >Java >java教程 >如何在 java.util.Date 和 java.time 类型之间进行转换?

如何在 java.util.Date 和 java.time 类型之间进行转换?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-04 08:26:31411浏览

How to Convert Between java.util.Date and java.time Types?

如何将 java.util.Date 转换为 java.time 类型

问题: 如何转换 java.util.Date 或 java .util.Calendar 对象转换为适当的 java.time 框架类型?

答案:

从 java.util.Date 到 Instant

进行转换java.util.Date 到 Instant,使用 toInstant 方法:

<code class="java">Instant instant = myUtilDate.toInstant();</code>

从 java.util.Calendar 到 Instant

对于 java.util.Calendar 对象,使用 toInstant 方法:

<code class="java">Instant instant = myUtilCalendar.toInstant();</code>

从 java.util.GregorianCalendar 到 ZonedDateTime

要将 java.util.GregorianCalendar 转换为 ZonedDateTime,请使用 toZonedDateTime 方法:

<code class="java">if (myUtilCalendar instanceof GregorianCalendar) {
    GregorianCalendar gregCal = (GregorianCalendar) myUtilCalendar;
    ZonedDateTime zdt = gregCal.toZonedDateTime();
}</code>

从 OffsetDateTime 到 java.util.Date

从 OffsetDateTime 中提取 Instant 并使用它来创建 java.util.Date:

<code class="java">java.util.Date myUtilDate = java.util.Date.from(odt.toInstant());</code>

从 ZonedDateTime 到 java.util.Date

类似地,从 ZonedDateTime 中提取 Instant:

<code class="java">java.util.Date myUtilDate = java.util.Date.from(zdt.toInstant());</code>

从 ZonedDateTime 到 GregorianCalendar

使用 from 方法将 ZonedDateTime 转换为 GregorianCalendar:

<code class="java">java.util.Calendar myUtilCalendar = java.util.GregorianCalendar.from(zdt);</code>

从 LocalDate 到 ZonedDateTime

从 LocalDate 到 ZonedDateTime 需要指定时区:

<code class="java">LocalDate localDate = zdt.toLocalDate();
ZonedDateTime zdt = localDate.atStartOfDay(zoneId);</code>

从 LocalTime 到 ZonedDateTime

同样,对于 LocalTime:

<code class="java">LocalTime localTime = zdt.toLocalTime();
ZonedDateTime zdt = ZonedDateTime.of(localDate, localTime, zoneId);</code>

以上是如何在 java.util.Date 和 java.time 类型之间进行转换?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn