【Java 8 新特性】Java LocalDate 转 Date
Java LocalDate 转 Date
- 1. 使用 LocalDate.atTime
- 2. 使用 LocalDate.atStartOfDay
- 3. 使用 LocalDateTime.of
- 4. 使用 Timestamp.valueOf
- 完整示例
- 参考文献
在这一页,我们将提供如何将java.time.LocalDate
转换成java.util.Date
。
LocalDate
表示一个格式为yyyy-MM-dd
的日期,如2019-05-08
。
我们可以使用以下方法和构造函数来创建一个Date
对象。
1. Date.from(instant): 要从Instant
对象中获取Date
的一个实例。我们可以使用ZonedDateTime
或Timestamp
来获得Instant
。ZonedDateTime
和Timestamp
可以使用LocalDateTime
获得,LocalDateTime
可以使用LocalDate
获得。
2. Date(long date): 使用构造函数创建Date
对象并初始化它以表示指定的毫秒数。我们可以使用Timestamp.getTime()
来获得毫秒数的时间。
1. 使用 LocalDate.atTime
LocalDate.atTime
方法将该日期与给定的时间相结合,创建一个LocalDateTime
。
LocalDateTime.atZone
将这个日期时间与一个时区结合起来,创建一个ZonedDateTime
。
ZonedDateTime.toInstant
将这个日期时间转换为一个Instant
。
现在我们将把这个Instant
实例传递给Date.from
方法,它将返回一个java.util.Date
实例。
例:
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
2. 使用 LocalDate.atStartOfDay
例1: LocalDate.atStartOfDay(zone)
根据时区的规则,返回从该日期开始的最早有效时间的分区日期时间(time-zone
)。
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
例2: LocalDate.atStartOfDay()
将这个日期与午夜的时间结合起来,在这个日期的开始创建一个LocalDateTime
。
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
3. 使用 LocalDateTime.of
LocalDateTime.of
从一个日期和时间获得一个LocalDateTime
的实例。
例:
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = LocalDateTime.of(localDate, LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
4. 使用 Timestamp.valueOf
Timestamp.valueOf(dateTime)
从LocalDateTime
对象中获得一个Timestamp
的实例。
例1: 使用LocalDate.atTime
方法对LocalDateTime
进行实例化。
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT)).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
例2: 使用LocalDateTime.of
方法对LocalDateTime
进行实例化。
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = Timestamp.valueOf(LocalDateTime.of(localDate, LocalTime.MIDNIGHT)).toInstant();
Date date = Date.from(instant);
System.out.println(date); //Wed May 08 00:00:00 IST 2019
例3: 使用Timestamp.getTime()
方法创建Date
。
LocalDate localDate = LocalDate.parse("2019-05-08");
Timestamp timestamp = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT));
Date date = new Date(timestamp.getTime());
System.out.println(date); //Wed May 08 00:00:00 IST 2019
完整示例
LocalDateToDate.java
import java.sql.Timestamp;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.util.Date;
public class LocalDateToDate {
public static void main(String[] args) {
LocalDate localDate = LocalDate.parse("2019-05-08");
Instant instant = localDate.atTime(LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
Date date = Date.from(instant);
System.out.println(date);
instant = localDate.atStartOfDay(ZoneId.systemDefault()).toInstant();
date = Date.from(instant);
System.out.println(date);
instant = localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant();
date = Date.from(instant);
System.out.println(date);
instant = LocalDateTime.of(localDate, LocalTime.MIDNIGHT).atZone(ZoneId.systemDefault()).toInstant();
date = Date.from(instant);
System.out.println(date);
instant = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT)).toInstant();
date = Date.from(instant);
System.out.println(date);
instant = Timestamp.valueOf(LocalDateTime.of(localDate, LocalTime.MIDNIGHT)).toInstant();
date = Date.from(instant);
System.out.println(date);
Timestamp timestamp = Timestamp.valueOf(localDate.atTime(LocalTime.MIDNIGHT));
date = new Date(timestamp.getTime());
System.out.println(date);
}
}
输出
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
Wed May 08 00:00:00 IST 2019
参考文献
【1】Java LocalDate 【2】Java DateTimeFormatter 【3】Java LocalDate to Date
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186120.html原文链接:https://javaforall.cn
相关文章
- java中数组转成list_java数组转json
- java setattribute_java – HttpSession setAttribute并不总是插入新对象「建议收藏」
- 异常:java lang AbstractMethodError
- java pfx 证书_Java将pfx证书转换为jks[通俗易懂]
- java开发常用四大框架_Java 后台开发框架[通俗易懂]
- java面向对象的三大特性
- java messagedigest_Java 自带的加密类MessageDigest类(加密MD5和SHA)[通俗易懂]
- java平均的随机数_Java 随机数详解「建议收藏」
- java 随机数算法_Java随机数算法原理与实现方法实例详解
- 字符串转json对象 java_js中对象转字符串的方法
- 心形曲线(java)
- 【Java】线程池梳理
- 中文获取全拼功能Java代码详解编程语言
- java 操作文件夹代码详解编程语言
- java ArrayList如何排序详解编程语言
- Java三大特性之继承详解编程语言
- MySQL数据库开发实践:用 Java 开发中文应用(mysql中文java)
- 机制Redis中强大的Java过期机制(redisjava过期)
- 特性探索Redis中Java的过期特性.(redisjava过期)
- 策略设计高效的Redis Java过期策略(redisjava过期)
- Java实现嵌入式MySQL的新解决方案(java嵌入式mysql)
- 并发Redis锁保障Java并发性(redis锁实现java)
- Oracle Java6新时代的Java编程体验(oracle java6)
- 浅析java中ArrayList与Vector的区别以及HashMap与Hashtable的区别
- java堆栈类使用实例(java中stack的使用方法)
- Java中调用SQLServer存储过程详解
- Java函数式编程(九):Comparator