Data与Java8中的LocalDate相互转换

一、前言

Date这个类在java.util包中,始于jdk1.0。后来在jdk1.8时,针对日期类进行了一个大的更新,专门新建了java.time包,新的日期类LocalDateTime就在这个包中。
日常工作中,很容易碰到旧日期类Date,与新日期类LocalDateTime的相互转换。下面就介绍一下如何进行转换

二、思路

我们先打开Date类,看1.8之后新增了什么方法。 可以看到在Date类的最下面增加了两个方法:from(Instant)toInstant()
也就是说Date类与新日期类,是通过Instant进行交互的。
在这里插入图片描述

三、转换代码

1. Date转LocalDateTime
toInstant
Date
Instant
LocalDateTime
    @Test
    public void date2LocalDateTime() {
        Date date = new Date();
        Instant instant = date.toInstant();
        LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
        System.out.println("date:          " + date);
        System.out.println("localDateTime: " + localDateTime);
    }

执行结果在这里插入图片描述

2. LocalDateTime转Date
toInstant
LocalDateTime
Instant
Date

代码

    @Test
    public void localDateTime2Date() {
        LocalDateTime localDateTime = LocalDateTime.now();
        Instant instant = localDateTime.toInstant(ZoneOffset.ofHours(8));
        Date date = Date.from(instant);
        System.out.println("localDateTime: " + localDateTime);
        System.out.println("date:          " + date);
    }

执行结果在这里插入图片描述

四、随便聊聊

后面每篇文章,尽量增加这样一个章节,主要是聊一些最近的感想和解决问题的思路。


本篇文章,最核心的是打开Date类,查看jdk1.8新增的两个方法:from(Instant)toInstant()
看到这个之后,我们就知道了Date与新日期类是根据Instant这个类进行交互的。只要想办法生成一个Instant对象,我们就能转成Date了。这样就不用死记硬背那些转换的代码了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值