Java8中 Date和LocalDate的相互转换[通俗易懂]

Java8中 Date和LocalDate的相互转换[通俗易懂]一.简述Date对象表示特定的日期和时间,而LocalDate(Java8)对象只包含没有任何时间信息的日期。因此,如果我们只关心日期而不是时间信息,则可以在Date和LocalDate之间进行转换。二.Date转LocalDate如果要将java.util.Date转换为java.time.LocalDate,可以使用以下步骤:1)将java.util.Date转换为ZonedDateTime

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一.简述

Date对象表示特定的日期和时间,而LocalDate(Java8)对象只包含没有任何时间信息的日期。
因此,如果我们只关心日期而不是时间信息,则可以在Date和LocalDate之间进行转换。

二.Date转LocalDate

如果要将java.util.Date转换为java.time.LocalDate,可以使用以下步骤:

1)将java.util.Date转换为ZonedDateTime。
2)使用它的toLocalDate()方法从ZonedDateTime获取LocalDate。

示例:

package insping;

import java.time.Instant;
import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

public class Test { 
   

    public static void main(String[] args) {
        Date date = new Date();
        Instant instant = date.toInstant();
        ZoneId zoneId = ZoneId.systemDefault();

        // atZone()方法返回在指定时区从此Instant生成的ZonedDateTime。
        LocalDate localDate = instant.atZone(zoneId).toLocalDate();
        System.out.println("Date = " + date);
        System.out.println("LocalDate = " + localDate);
    }
}

结果:

Date = Fri Jun 16 15:29:05 CST 2017
LocalDate = 2017-06-16

三.LocalDate转Date

现在,如果要将LocalDate转换回java.util.Date,可以使用以下步骤:

1)使用ZonedDateTime将LocalDate转换为Instant。
2)使用from()方法从Instant对象获取Date的实例

示例:

package insping;

import java.time.LocalDate;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Date;

public class Test {

    public static void main(String[] args) {
        ZoneId zoneId = ZoneId.systemDefault();
        LocalDate localDate = LocalDate.now();
        ZonedDateTime zdt = localDate.atStartOfDay(zoneId);

        Date date = Date.from(zdt.toInstant());

        System.out.println("LocalDate = " + localDate);
        System.out.println("Date = " + date);

    }
}

结果:

LocalDate = 2017-06-16
Date = Fri Jun 16 00:00:00 CST 2017
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186481.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 协调世界时utc_utc协调世界时什么意思

    协调世界时utc_utc协调世界时什么意思协调世界时UTC:又称世界标准时间或世界协调时间,简称UTC(从英文“CoordinatedUniversalTime”/法文“TempsUniverselCordonné”而来

    2022年8月2日
    8
  • axisfaultexception_this alias is not available

    axisfaultexception_this alias is not available出现下面情况,可以是proxy.setEndpoint(endpoint);中endpoint没有给对导致AxisFault faultCode:{http://xml.apache.org/axis/}Server.NoService faultSubcode: faultString:TheAXISenginecouldnotfindatargetservicetoinvoke! targetServiceisGetPassword1 faultActor

    2025年11月4日
    4
  • HDU 4825 Xor Sum 字典树+位运算

    HDU 4825 Xor Sum 字典树+位运算

    2021年12月5日
    52
  • Debian下安装3322动态域名更新程序

    Debian下安装3322动态域名更新程序Ez ipupdate 是一个动态域名更新程序 可以更新希网的动态域名 对于动态域名 DYNDNS service type 参数应该选择 qdns 对于静态域名 STATDNS service type 参数应该选择 qdns static 安装和使用方法 将 ez ipupdate 拷贝到 usr local bin 目录 Ez ipupdate 可以运行在以下两种方式 命

    2025年6月18日
    2
  • linux arping命令学习「建议收藏」

    linux arping命令学习「建议收藏」arping命令用来向邻近的主机发生ARPREQUEST数据包。1.arping命令可以用来测试局域网各个主机之间的连通性,不能用于测试其是否能与互联网连通,sh-#pingwww.google.comPINGwww.google.com(74.125.239.147)56(84)bytesofdata.64bytesfromnuq05s02-in-f19

    2022年5月1日
    54
  • shell脚本–sed的用法[通俗易懂]

    shell脚本–sed的用法[通俗易懂]sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。sed是Linux下一款功能强大的非交互流式文本编辑器,可以对文本文件进行增、删、改、查等操作,支持按行、按字段、按正则匹配文本内容,灵活方便,特别适合于大文件的编辑。本文主要介绍sed的一些基本用法,并通过shell脚本演示sed的使用实例。1.sed的使用方法,调用sed命令的语法有两种:一.在命令…

    2022年7月26日
    10

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号