Java 8 中 Date与LocalDateTime、LocalDate、LocalTime互转
2016-12-14 21:51
666 查看
Java 8中 java.util.Date 类新增了两个方法,分别是from(Instant instant)和toInstant()方法
这两个方法使我们可以方便的实现将旧的日期类转换为新的日期类,具体思路都是通过Instant当中介,然后通过Instant来创建LocalDateTime(这个类可以很容易获取LocalDate和LocalTime),新的日期类转旧的也是如此,将新的先转成LocalDateTime,然后获取Instant,接着转成Date,具体实现细节如下:
// 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,具体实现细节如下:
// 01. java.util.Date --> java.time.LocalDateTime public void UDateToLocalDateTime() { java.util.Date date = new java.util.Date(); Instant instant = date.toInstant(); ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone); } // 02. java.util.Date --> java.time.LocalDate public void UDateToLocalDate() { java.util.Date date = new java.util.Date(); Instant instant = date.toInstant(); ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone); LocalDate localDate = localDateTime.toLocalDate(); } // 03. java.util.Date --> java.time.LocalTime public void UDateToLocalTime() { java.util.Date date = new java.util.Date(); Instant instant = date.toInstant(); ZoneId zone = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, zone); LocalTime localTime = localDateTime.toLocalTime(); } // 04. java.time.LocalDateTime --> java.util.Date public void LocalDateTimeToUdate() { LocalDateTime localDateTime = LocalDateTime.now(); ZoneId zone = ZoneId.systemDefault(); Instant instant = localDateTime.atZone(zone).toInstant(); java.util.Date date = Date.from(instant); } // 05. java.time.LocalDate --> java.util.Date public void LocalDateToUdate() { LocalDate localDate = LocalDate.now(); ZoneId zone = ZoneId.systemDefault(); Instant instant = localDate.atStartOfDay().atZone(zone).toInstant(); java.util.Date date = Date.from(instant); } // 06. java.time.LocalTime --> java.util.Date public void LocalTimeToUdate() { LocalTime localTime = LocalTime.now(); LocalDate localDate = LocalDate.now(); LocalDateTime localDateTime = LocalDateTime.of(localDate, localTime); ZoneId zone = ZoneId.systemDefault(); Instant instant = localDateTime.atZone(zone).toInstant(); java.util.Date date = Date.from(instant); }
相关文章推荐
- java并发编程(一)----线程基础知识
- java 通过反射操作对象
- jdk的下载及安装
- 一点一滴学习Spring(六)之Spring MVC视图解析器
- Java web
- java.awt.headless
- java需要掌握的知识
- JAVABEAN
- SpringMVC使用注解完成 URL 和 Controller & 方法之间的映射细节
- 一点一滴学习Spring(五)之Spring MVC
- 关于Spring简单的介绍
- Spring常用配置(二)
- Spring常用配置(二)
- Spring常用配置(二)
- Spring常用配置(二)
- Java 8之Stream适用场景
- eclipse使用教程
- 【leetcode】46. Permutations 【回溯问题的通用方法】【java】
- Java多线程——线程同步与锁
- 一点一滴学习Spring(四)之AOP