Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作
一、簡述
首先,Java 8引入了java.time.LocalDate來表示一個(gè)沒有時(shí)間的日期。
其次,使用Java 8版本,還需要更新java.sql.Date,以便為LocalDate提供支持,包括toLocalDate和valueOf(LocalDate)等方法。
二、java.time.LocalDate轉(zhuǎn)換為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); } }
結(jié)果:
java.time.LocalDate = 2017-06-16
java.sql.Date = 2017-06-16
三、java.sql.Date轉(zhuǎn)換為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); } }
結(jié)果:
java.sql.Date = 2017-06-16
java.time.LocalDate = 2017-06-16
補(bǔ)充知識(shí):Java8中 Date和LocalDateTime的相互轉(zhuǎn)換
一、在Java 8中將Date轉(zhuǎn)換為LocalDateTime
方法1:
將Date轉(zhuǎn)換為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); } }
結(jié)果:
Date = Fri Jun 16 15:35:26 CST 2017
LocalDateTime = 2017-06-16T15:35:26.970
方法2:
我們也可以使用LocalDateTime的FactoryInput()方法使用系統(tǒng)的默認(rèn)時(shí)區(qū)。
LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), zoneId);
二、在Java 8中將LocalDateTime轉(zhuǎn)換為Date
要將LocalDateTime轉(zhuǎn)換回java.util.Date,我們可以使用以下步驟:
1.使用atZone()方法將LocalDateTime轉(zhuǎn)換為ZonedDateTime
2.將ZonedDateTime轉(zhuǎn)換為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); } }
結(jié)果:
LocalDateTime = 2017-06-16T15:38:48.580
Date = Fri Jun 16 15:38:48 CST 2017
以上這篇Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mybatis一級(jí)緩存和結(jié)合Spring Framework后失效的源碼探究
這篇文章主要介紹了Mybatis一級(jí)緩存和結(jié)合Spring Framework后失效的源碼探究,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算
這篇文章主要介紹了Java中使用BigDecimal進(jìn)行浮點(diǎn)數(shù)運(yùn)算,需要的朋友可以參考下2014-07-07SpringBoot yaml語法與數(shù)據(jù)讀取操作詳解
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語言)的遞歸縮寫。在開發(fā)的這種語言時(shí),YAML 的意思其實(shí)是:“Yet Another Markup Language”(仍是一種標(biāo)記語言),本文給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-07-07Maven多模塊及version修改的實(shí)現(xiàn)方法
這篇文章主要介紹了Maven多模塊及version修改的實(shí)現(xiàn)方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-06-06