Java8中LocalDate和java.sql.Date的相互转换操作
⼀、简述
⾸先,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.w();
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
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 = LocalDate();
System.out.println("java.time.LocalDate = " + localDate);string转date的方法
}
}
结果:
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 = Instant();
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.Instant(), 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 = w();
ZonedDateTime zdt = localDateTime.atZone(zoneId);
Date date = Date.Instant());
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的相互转换操作就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论