java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法

// Obtains an instance of Date from an Instant object.
public static Date from(Instant instant) {
try {
return new Date(instant.toEpochMilli());
} catch (ArithmeticException ex) {
throw new IllegalArgumentException(ex);
}
} // Converts this Date object to an Instant.
public Instant toInstant() {
return Instant.ofEpochMilli(getTime());
}

这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:

    @Test
public void method3(){
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println("localDateTime: "+localDateTime);
Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println("date: "+date);
} 输出结果
localDateTime: 2018-11-19T10:22:00.712
date: Mon Nov 19 10:22:00 CST 2018

LocalDateTime---------->Date

    @Test
public void method4(){
LocalDate localDate = LocalDate.now();
System.out.println("localDate: "+localDate);
Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println("date: "+date);
} 输出结果
localDate: 2018-11-19
date: Mon Nov 19 00:00:00 CST 2018

LocalDate------->Date

    @Test
public void method5(){
LocalDateTime localDateTime = LocalDateTime.now();
LocalDate localDate = localDateTime.toLocalDate();
System.out.println(localDate);
} @Test
public void method6(){
LocalDate localDate = LocalDate.now();
LocalDateTime localDateTime = localDate.atStartOfDay();
System.out.println(localDateTime);
}

LocalDate LocalDateTime

    @Test
public void method1(){
Date d1 = new Date();
System.out.println("date: "+d1);
Instant instant = d1.toInstant();
LocalDateTime local1 = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
System.out.println("LocalDateTime: "+local1);
} 输出结果
date: Mon Nov 19 09:37:14 CST 2018
LocalDateTime: 2018-11-19T09:37:14.063

Date ----->LocalDateTime

    @Test
public void method2(){
Date d1 = new Date();
System.out.println("date: "+d1);
Instant instant = d1.toInstant();
LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDate ld = ldt.toLocalDate();
System.out.println("LocalDate: "+ld);
} 输出结果
date: Mon Nov 19 09:46:30 CST 2018
LocalDate: 2018-11-19

Date ------>LocalDate

java8 Date LocalDate LocaDateTime 互相转化的更多相关文章

  1. Java8获取当前时间、新的时间日期类如Java8的LocalDate与Date相互转换、ZonedDateTime等常用操作包含多个使用示例、Java8时区ZoneId的使用方法、Java8时间字符串解析成类

     下面将依次介绍 Date转Java8时间类操作 ,Java8时间类LocalDate常用操作(如获得当前日期,两个日期相差多少天,下个星期的日期,下个月第一天等) 解析不同时间字符串成对应的Java ...

  2. java8关于LocalDate,Date

    关于java8中的新的时间日期类 public static void main(String[] args) { Date date = new Date(); LocalDate localDat ...

  3. Java8 Date与LocalDate互转

    Java8 日期时间API,新增了LocalDate.LocalDateTime.LocalTime等线程安全类,接下来要说的是LocalDate与java.util.Date之间的转换. 1.Loc ...

  4. java8 Date/Time API 新的日期处理工具

    接上篇文章 java8 新特性 由于上篇过于庞大,使得重点不够清晰,本篇单独拿出 java8 的 Date/Time api 进行说明,新的日期时间工具全部都在 java.time 及其子包中. 新 ...

  5. Java8 Date API

    一 .Clock 时钟 Clock类提供了访问当前日期和时间的方法,Clock是时区敏感的,可以用来取代 System.currentTimeMillis() 来获取当前的微秒数.某一个特定的时间点也 ...

  6. Java8 使用LocalDate计算两个日期间隔多少年,多少月,多少天

    最近项目遇到一个需要计算两个日期间隔的期限,需要计算出,整年整月整日这样符合日常习惯的说法,利用之前的Date和Calendar类会有点复杂,刚好项目使用了JDK8,那就利用起来这个新特性,上代码: ...

  7. java8 Date相关工具

    自己整理的java8 常用的工具类 /** * @Author taozhaoyang * @Description 结合 java8 线程安全 * @Date 9:55 2018/7/30 **/ ...

  8. Oracle数据库date类型与Java中Date的联系与转化

    以下是对Java中的日期对象与Oracle中的日期之间的区别与联系做点说明,以期对大家有所帮助.new Date():分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒),就是系统当前 ...

  9. Java8中LocalDate的使用---项目中日期处理

    // 获取当前日期 LocalDate now = LocalDate.now(); // 设置日期 LocalDate now2 = LocalDate.of(2099, 2, 28); // 解析 ...

随机推荐

  1. 转载:LESS基本用法

    转载出处:https://blog.csdn.net/qq_38209578/article/details/80566860 转载出处:https://blog.csdn.net/weixin_44 ...

  2. mybatis关联查询之一对一查询

    一对一也就是 A 表的一条记录对应 B 表的一条记录,下面的测试数据中,从employee 表来看,一个员工对应一个部门,是一对一关系,如果从部门角度来看,则是一对多的关系,一个部门对应多个员工,本节 ...

  3. 【转】 linux下配置squid 服务器,最简单使用方式

    linux下配置squid 1.什么是squid Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器.Squid有广泛的用途,从作为网 ...

  4. rabbitmq一个连接多个信道channel

    https://www.cnblogs.com/eleven24/p/10326718.html

  5. 解决"Microsoft Visual C++ 14.0 is required"的问题

    1. 在  https://www.lfd.uci.edu/~gohlke/pythonlibs/  上面找到要安装的组件 2.下载相应的版本到本地 3. pip install **.whl

  6. k8s-mysql搭建

    安装官方文档https://kubernetes.io/docs/tasks/run-application/run-replicated-stateful-application/ 搭建完成,但是没 ...

  7. POJ1149PIGS

    传送门 貌似是最大流建图优化入门题(可惜我还是不会) 最暴力的建图当然是源点连每个猪圈然后猪圈需要拆成n个点分给每个人这个必定是跑不过的 所以我们可以进行优化 很明显没有被动过的猪圈一直是不变的可以不 ...

  8. plt.imshow()

    import matplotlib.pyplot as plt plt.imshow(digits.images[-1], cmap = plt.cm.gray_r) .imshow() Plotti ...

  9. docker 运行jenkins及vue项目与springboot项目(一.安装docker)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  10. 文本处理工具——sed进阶

    一sed的搜索替代 (一)常见的和替代相关的选项 搜索替代,和vim的写法很像 s///:查找替换,支持使用其它分隔符,s@@@,s### p: 显示替换成功的行,就是打印. w /PATH/TO/S ...