时间:2021-05-20
一、简述
首先,Java 8引入了java.time.LocalDate来表示一个没有时间的日期。
其次,使用Java 8版本,还需要更新java.sql.Date,以便为LocalDate提供支持,包括toLocalDate和valueOf(LocalDate)等方法。
二、java.time.LocalDate转换为java.sql.Date
java.sql.Date.valueOf( localDate )
package insping;public class Test { public static void main(String[] args) { java.time.LocalDate date = java.time.LocalDate.now(); System.out.println("java.time.LocalDate = " + date); java.sql.Date sqlDate = java.sql.Date.valueOf(date); System.out.println("java.sql.Date = " + sqlDate); }}结果:
java.time.LocalDate = 2017-06-16
java.sql.Date = 2017-06-16
三、java.sql.Date转换为java.time.LocalDate
sqlDate.toLocalDate()
public class Test { public static void main(String[] args) { java.sql.Date sqlDate = java.sql.Date.valueOf("2017-06-16"); System.out.println("java.sql.Date = " + sqlDate); java.time.LocalDate localDate = sqlDate.toLocalDate(); System.out.println("java.time.LocalDate = " + localDate); }}结果:
java.sql.Date = 2017-06-16
java.time.LocalDate = 2017-06-16
补充知识:Java8中 Date和LocalDateTime的相互转换
一、在Java 8中将Date转换为LocalDateTime
方法1:
将Date转换为LocalDatetime,我们可以使用以下方法:
1.从日期获取ZonedDateTime并使用其方法toLocalDateTime()获取LocalDateTime
2.使用LocalDateTime的Instant()工厂方法
示例:
package insping;import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.util.Date;public class Test { public static void main(String[] args) { Date date = new Date(); Instant instant = date.toInstant(); ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime localDateTime = instant.atZone(zoneId).toLocalDateTime(); System.out.println("Date = " + date); System.out.println("LocalDateTime = " + localDateTime); }}结果:
Date = Fri Jun 16 15:35:26 CST 2017
LocalDateTime = 2017-06-16T15:35:26.970
方法2:
我们也可以使用LocalDateTime的FactoryInput()方法使用系统的默认时区。
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);
二、在Java 8中将LocalDateTime转换为Date
要将LocalDateTime转换回java.util.Date,我们可以使用以下步骤:
1.使用atZone()方法将LocalDateTime转换为ZonedDateTime
2.将ZonedDateTime转换为Instant,并从中获取Date
示例:
package insping;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.ZonedDateTime;import java.util.Date;public class Test { public static void main(String[] args) { ZoneId zoneId = ZoneId.systemDefault(); LocalDateTime localDateTime = LocalDateTime.now(); ZonedDateTime zdt = localDateTime.atZone(zoneId); Date date = Date.from(zdt.toInstant()); System.out.println("LocalDateTime = " + localDateTime); System.out.println("Date = " + date); }}结果:
LocalDateTime = 2017-06-16T15:38:48.580
Date = Fri Jun 16 15:38:48 CST 2017
以上这篇Java8中 LocalDate和java.sql.Date的相互转换操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
LocalDate、LocalTime、LocalDateTime是Java8开始提供的时间日期API,主要用来优化Java8以前对于时间日期的处理操作。然而,
前言相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数
前言相信大家应该都知道,在实体Entity里面,可以使用java.sql.Date、java.sql.Timestamp、java.util.Date来映射到数
java日期各种格式之间的相互转换实例代码java日期各种格式之间的相互转换,直接调用静态方法实例代码:java日期各种格式之间的相互转换,直接调用静态方法pa
一、Java中byte和int之间的转换源码://byte与int的相互转换publicstaticbyteintToByte(intx){return(byt