最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java.sql.Date和java.util.Date的區(qū)別詳解

 更新時(shí)間:2023年03月27日 10:32:36   作者:6個(gè)日的夢(mèng)想  
Java中有兩個(gè)Date類,一個(gè)是java.util.Date通常情況下用它獲取當(dāng)前時(shí)間或構(gòu)造時(shí)間,另一個(gè)是java.sql.Date是針對(duì)SQL語句使用的,它只包含日期而沒有時(shí)間部分,這篇文章主要給大家介紹了關(guān)于java.sql.Date和java.util.Date區(qū)別的相關(guān)資料,需要的朋友可以參考下

參考答案

  • java.sql.Date 是 java.util.Date 的子類
  • java.util.Date 是 JDK 中的日期類,精確到時(shí)、分、秒、毫秒
  • java.sql.Date 與數(shù)據(jù)庫(kù) Date 相對(duì)應(yīng)的一個(gè)類型,只有日期部分,時(shí)分秒都會(huì)設(shè)置為 0,如:2019-10-23 00:00:00
  • 要從數(shù)據(jù)庫(kù)時(shí)間字段取 時(shí)、分、秒、毫秒數(shù)據(jù),可以使用 java.sql.Timestamp

JDK1.8 中的日期與時(shí)間 API

為什么 JDK 1.8 之前的時(shí)間與日期 API 不好用?

1、java.util.Date 是從 JDK 1.0 開始提供,易用性差

  • 默認(rèn)是中歐時(shí)區(qū)(Central Europe Time)
  • 起始年份是 1900 年
  • 起始月份從 0 開始
  • 對(duì)象創(chuàng)建之后可修改

2、JDK 1.1 廢棄了 Date 中很多方法,新增了并建議使用 java.util.Calendar 類

  • 相比 Date 去掉了年份從 1900 年開始
  • 月份依然從 0 開始
  • 選用 Date 或 Calendar,讓人更困擾

3、DateFormat 格式化時(shí)間,線程不安全

為了解決 JDK 中時(shí)間與日期較難使用的問題,JDK 1.8 開始,吸收了 Joda-Time 很多功能,新增 java.time 包,加了新特性

  • 區(qū)分適合人閱讀的和適合機(jī)器計(jì)算的時(shí)間與日期類
  • 日期、時(shí)間及對(duì)比相關(guān)的對(duì)象創(chuàng)建完均不可修改
  • 可并發(fā)解析與格式化日期與時(shí)間
  • 支持設(shè)置不同的時(shí)區(qū)與歷法
LocalDate本地日期
LocalTime本地時(shí)間
LocalDateTime本地日期+時(shí)間
Instant時(shí)間戳,適合機(jī)器時(shí)間計(jì)算
Duration時(shí)間差
Period年、月、日差
ZoneOffset時(shí)區(qū)偏移量
ZonedDateTime帶時(shí)區(qū)的日期時(shí)間
Clock時(shí)鐘,獲取其他地區(qū)時(shí)鐘
DateTimeFormatter時(shí)間格式化
Temporal日期-時(shí)間獲取值的字段
TemporalAdjusteremporal 對(duì)象轉(zhuǎn)換,實(shí)現(xiàn)自定義
ChronoLocalDate日歷系統(tǒng)接口

常用 api

1、 獲取當(dāng)前日期

LocalDate.now()

2、創(chuàng)建日期

LocalDate date = LocalDate.of(2020, 9, 21)

3、獲取年份

date.getYear()
 
//通過 TemporalField 接口的實(shí)現(xiàn)枚舉類 ChronoField.YEAR 獲取年份
date.get(ChronoField.YEAR)

4、獲取月份

date.getMonth().getValue()
 
//通過 TemporalField 接口的實(shí)現(xiàn)枚舉類 ChronoField.MONTH_OF_YEAR 獲取月份
date.get(ChronoField.MONTH_OF_YEAR)

5、獲取日

date.getDayOfMonth()
 
//通過 TemporalField 接口的實(shí)現(xiàn)枚舉類 ChronoField.DAY_OF_MONTH 獲取日
date.get(ChronoField.DAY_OF_MONTH)

6、獲取周幾

date.getDayOfWeek()

7、獲取當(dāng)前月多少天

date.lengthOfMonth()

8、獲取當(dāng)前年是否為閏年

date.isLeapYear()

9、當(dāng)前時(shí)間

LocalTime nowTime = LocalTime.now()

10、創(chuàng)建時(shí)間

LocalTime.of(23, 59, 59)

11、獲取時(shí)

nowTime.getHour()

12、獲取分

nowTime.getMinute()

13、獲取秒

nowTime.getSecond()

14、獲取毫秒

nowTime.getLong(ChronoField.MILLI_OF_SECOND)

15、獲取納秒

nowTime.getNano()

16、創(chuàng)建日期時(shí)間對(duì)象

LocalDateTime.of(2020, 9, 21, 1, 2, 3);
LocalDateTime.of(date, nowTime);

17、獲取當(dāng)前日期時(shí)間對(duì)象

LocalDateTime.now()

18、通過 LocalDate 創(chuàng)建日期時(shí)間對(duì)象

date.atTime(1, 2, 3)

19、通過 LocalTime 創(chuàng)建日期時(shí)間對(duì)象

nowTime.atDate(date)

20、通過 LocalDateTime 獲取 LocalDate 對(duì)象

LocalDateTime.now().toLocalDate()

21、通過 LocalDateTime 獲取 LocalTime 對(duì)象

LocalDateTime.now().toLocalTime()

22、解析日期字符串

LocalDate.parse("2020-09-21")

23、解析時(shí)間字符串

LocalTime.parse("01:02:03")

24、解析日期時(shí)間字符串

LocalDateTime.parse("2020-09-21T01:02:03", DateTimeFormatter.ISO_LOCAL_DATE_TIME)

25、方便時(shí)間建模、機(jī)器處理的時(shí)間處理類 Instant,起始時(shí)間 1970-01-01 00:00:00

//起始時(shí)間 + 3 秒
Instant.ofEpochSecond(3)
//起始時(shí)間 + 3 秒 + 100 萬納秒
Instant.ofEpochSecond(3, 1_000_000_000)
//起始時(shí)間 + 3 秒 - 100 萬納秒
Instant.ofEpochSecond(3, -1_000_000_000))
//距離 1970-01-01 00:00:00 毫秒數(shù)
Instant.now().toEpochMilli()

26、Duration:LocalTime、LocalDateTime、Intant 的時(shí)間差處理

Duration.between(LocalTime.parse("01:02:03"), LocalTime.parse("02:03:04"))
Duration.between(LocalDateTime.parse("2020-09-21T01:02:03"), LocalDateTime.parse("2020-09-22T02:03:04"))
Duration.between(Instant.ofEpochMilli(1600623455080L), Instant.now())

27、日期時(shí)間,前、后、相等比較

//2020-09-21 在 2020-09-18 前?
LocalDate.parse("2020-09-21").isBefore(LocalDate.parse("2020-09-18"))
//01:02:03 在 02:03:04 后?
LocalTime.parse("01:02:03").isAfter(LocalTime.parse("02:03:04"))

28、修改日期、時(shí)間對(duì)象,返回副本

//修改日期返回副本
LocalDate.now().withYear(2019).withMonth(9).withDayOfMonth(9)
LocalDate date4Cal = LocalDate.now();
//加一周
date4Cal.plusWeeks(1)
//減兩個(gè)月
date4Cal.minusMonths(2)
//減三年
date4Cal.minusYears(3)

29、格式化

//格式化當(dāng)前日期
LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)
//指定格式,格式化當(dāng)前日期
LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))
指定格式,格式化當(dāng)前日期時(shí)間
//格式化當(dāng)前日期時(shí)間
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd  HH:mm:ss"))

30、解析

//日期解析
LocalDate.parse("2020-09-20")
//指定格式,日期解析
LocalDate.parse("2020/09/20", DateTimeFormatter.ofPattern("yyyy/MM/dd"))
//指定格式,日期時(shí)間解析
LocalDateTime.parse("2020/09/20 01:01:03", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))

31、時(shí)區(qū)

//上海時(shí)區(qū)
ZoneId shanghaiZone = ZoneId.of("Asia/Shanghai");
//設(shè)置日期為上海時(shí)區(qū)
LocalDate.now().atStartOfDay(shanghaiZone)
//設(shè)置日期時(shí)間為上海時(shí)區(qū)
LocalDateTime.now().atZone(shanghaiZone)
//設(shè)置 Instant 為上海時(shí)區(qū)
Instant.now().atZone(shanghaiZone)

32、子午線時(shí)間差

//時(shí)間差減 1 小時(shí)
ZoneOffset offset = ZoneOffset.of("-01:00");
//設(shè)置時(shí)間差
OffsetDateTime.of(LocalDateTime.now(), offset)

總結(jié)

到此這篇關(guān)于java.sql.Date和java.util.Date區(qū)別的文章就介紹到這了,更多相關(guān)java.sql.Date和java.util.Date區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式

    java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式

    這篇文章主要介紹了java使用poi自定義excel標(biāo)題頭并導(dǎo)出方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • Java編程long數(shù)據(jù)類型的使用問題

    Java編程long數(shù)據(jù)類型的使用問題

    這篇文章主要介紹了Java編程數(shù)據(jù)類型long的使用問題,涉及長(zhǎng)整型數(shù)據(jù)的取值范圍和不同整數(shù)類型的表示方法,需要的朋友可以參考下
    2017-09-09
  • java多線程累加計(jì)數(shù)的實(shí)現(xiàn)方法

    java多線程累加計(jì)數(shù)的實(shí)現(xiàn)方法

    在多線程協(xié)作任務(wù)中,如何計(jì)算也是很重的,這篇文章主要介紹了java多線程累加計(jì)數(shù)的實(shí)現(xiàn)方法,感興趣的朋友可以了解一下
    2021-05-05
  • IDEA如何對(duì)單個(gè)的java class文件打成jar包

    IDEA如何對(duì)單個(gè)的java class文件打成jar包

    這篇文章主要介紹了IDEA如何對(duì)單個(gè)的java class文件打成jar包問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 淺談線程的幾種可用狀態(tài)

    淺談線程的幾種可用狀態(tài)

    下面小編就為大家?guī)硪黄獪\談線程的幾種可用狀態(tài)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Mybatis-Plus之ID自動(dòng)增長(zhǎng)的設(shè)置實(shí)現(xiàn)

    Mybatis-Plus之ID自動(dòng)增長(zhǎng)的設(shè)置實(shí)現(xiàn)

    本文主要介紹了Mybatis-Plus之ID自動(dòng)增長(zhǎng)的設(shè)置實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼

    java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼

    本篇文章是對(duì)java時(shí)間戳轉(zhuǎn)日期格式的實(shí)現(xiàn)代碼進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • thymeleaf實(shí)現(xiàn)前后端數(shù)據(jù)交換的示例詳解

    thymeleaf實(shí)現(xiàn)前后端數(shù)據(jù)交換的示例詳解

    Thymeleaf?是一款用于渲染?XML/XHTML/HTML5?內(nèi)容的模板引擎,當(dāng)通過?Web?應(yīng)用程序訪問時(shí),Thymeleaf?會(huì)動(dòng)態(tài)地替換掉靜態(tài)內(nèi)容,使頁(yè)面動(dòng)態(tài)顯示,這篇文章主要介紹了thymeleaf實(shí)現(xiàn)前后端數(shù)據(jù)交換,需要的朋友可以參考下
    2022-07-07
  • SpringBoot之如何正確、安全的關(guān)閉服務(wù)

    SpringBoot之如何正確、安全的關(guān)閉服務(wù)

    這篇文章主要介紹了SpringBoot之如何正確、安全的關(guān)閉服務(wù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Lombok中關(guān)于@Data的使用解析

    Lombok中關(guān)于@Data的使用解析

    這篇文章主要介紹了Lombok中關(guān)于@Data的使用解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12

最新評(píng)論

洛川县| 阿荣旗| 内乡县| 军事| 保靖县| 山东| 永清县| 承德县| 永修县| 辽中县| 关岭| 周宁县| 突泉县| 大邑县| 南丰县| 若羌县| 嘉祥县| 乐亭县| 禹州市| 延安市| 高陵县| 武乡县| 绩溪县| 双峰县| 益阳市| 呈贡县| 灵武市| 称多县| 沙河市| 云南省| 松阳县| 阜阳市| 沁水县| 新田县| 碌曲县| 临夏市| 开封县| 漳浦县| 平昌县| 兴城市| 黎平县|