java8 Date LocalDate LocaDateTime 互相转化
2024-10-07 17:13:58
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
最新文章
- NDK开发_笔记0
- 在myeclipse2014使用git上传github
- Python开发入门与实战20-微信开发配置
- 初学Spring
- fastcoloredtextbox 中文不重叠
- Bellman-Ford最短路径
- mini install centOS log
- HDU 5957 Query on a graph
- c# windowsForm打印
- C++ map.insert 传参类型不同,构造/析构次数不同
- easyui最小化后停留在页面的右下角
- [LeetCode] Shopping Offers 购物优惠
- mysql数据库备份_可执行文件
- .NET控件名称缩写一览表 zz
- SQL Server 百万级数据提高查询速度的方法(转)
- Javascript面试题收集
- 从零开始学Kotlin-操作符(3)
- 获取当前目录getcwd,设置工作目录chdir,获取目录信息
- Python -- 网络编程 -- 认识Python3的urllib库
- Python教程:Python中的for 语句