Java8中 LocalDate和java.sql.Date的相互轉(zhuǎn)換操作
一、簡(jiǎn)述
首先,Java 8引入了java.time.LocalDate來(lái)表示一個(gè)沒(méi)有時(shí)間的日期。
其次,使用Java 8版本,還需要更新java.sql.Date,以便為L(zhǎng)ocalDate提供支持,包括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)換為L(zhǎng)ocalDateTime
方法1:
將Date轉(zhuǎn)換為L(zhǎng)ocalDatetime,我們可以使用以下方法:
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)換操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Java使用正則表達(dá)式提取XML節(jié)點(diǎn)內(nèi)容的方法示例
這篇文章主要介紹了Java使用正則表達(dá)式提取XML節(jié)點(diǎn)內(nèi)容的方法,結(jié)合具體實(shí)例形式分析了java針對(duì)xml格式字符串的正則匹配相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
Spring?Validation中的用戶注冊(cè)、JWT令牌之用戶登入功能
本文介紹了使用SpringValidation進(jìn)行用戶注冊(cè)驗(yàn)證和JWT進(jìn)行用戶登錄的方法,在用戶注冊(cè)時(shí),通過(guò)@Validated注解和@Pattern注解對(duì)用戶名和密碼進(jìn)行格式校驗(yàn),并使用Result對(duì)象返回驗(yàn)證結(jié)果,感興趣的朋友一起看看吧2024-11-11
Lucene實(shí)現(xiàn)索引和查詢的實(shí)例講解
下面小編就為大家分享一篇Lucene實(shí)現(xiàn)索引和查詢的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
SpringBoot快速接入DeepSeek?api(帶頁(yè)面)保姆級(jí)教程
這篇文章主要介紹了如何在Java端接入DeepSeek?API,包括申請(qǐng)APIkey、項(xiàng)目結(jié)構(gòu)展示、編寫controller和前端界面、以及測(cè)試啟動(dòng)項(xiàng)目的過(guò)程,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
Java對(duì)稱與非對(duì)稱加密算法原理詳細(xì)講解
對(duì)稱加密算法指加密和解密使用相同密鑰的加密算法。對(duì)稱加密算法用來(lái)對(duì)敏感數(shù)據(jù)等信息進(jìn)行加密,非對(duì)稱加密算法指加密和解密使用不同密鑰的加密算法,也稱為公私鑰加密2022-11-11
Mybatis 入門之MyBatis環(huán)境搭建(第一篇)
Mybatis的前身叫iBatis,本是apache的一個(gè)開源項(xiàng)目, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis。這篇文章主要介紹了Mybatis入門第一篇之MyBaits環(huán)境搭建,需要的朋友參考下2016-12-12

