亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

參考答案

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

JDK1.8 中的日期與時間 API

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

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

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

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

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

3、DateFormat 格式化時間,線程不安全

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

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

常用 api

1、 獲取當前日期

LocalDate.now()

2、創(chuàng)建日期

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

3、獲取年份

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

4、獲取月份

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

5、獲取日

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

6、獲取周幾

date.getDayOfWeek()

7、獲取當前月多少天

date.lengthOfMonth()

8、獲取當前年是否為閏年

date.isLeapYear()

9、當前時間

LocalTime nowTime = LocalTime.now()

10、創(chuàng)建時間

LocalTime.of(23, 59, 59)

11、獲取時

nowTime.getHour()

12、獲取分

nowTime.getMinute()

13、獲取秒

nowTime.getSecond()

14、獲取毫秒

nowTime.getLong(ChronoField.MILLI_OF_SECOND)

15、獲取納秒

nowTime.getNano()

16、創(chuàng)建日期時間對象

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

17、獲取當前日期時間對象

LocalDateTime.now()

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

date.atTime(1, 2, 3)

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

nowTime.atDate(date)

20、通過 LocalDateTime 獲取 LocalDate 對象

LocalDateTime.now().toLocalDate()

21、通過 LocalDateTime 獲取 LocalTime 對象

LocalDateTime.now().toLocalTime()

22、解析日期字符串

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

23、解析時間字符串

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

24、解析日期時間字符串

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

25、方便時間建模、機器處理的時間處理類 Instant,起始時間 1970-01-01 00:00:00

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

26、Duration:LocalTime、LocalDateTime、Intant 的時間差處理

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、日期時間,前、后、相等比較

//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、修改日期、時間對象,返回副本

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

29、格式化

//格式化當前日期
LocalDate.now().format(DateTimeFormatter.ISO_LOCAL_DATE)
//指定格式,格式化當前日期
LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"))
指定格式,格式化當前日期時間
//格式化當前日期時間
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"))
//指定格式,日期時間解析
LocalDateTime.parse("2020/09/20 01:01:03", DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"))

31、時區(qū)

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

32、子午線時間差

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

總結

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

相關文章

  • 詳解Java中Quartz的簡單使用

    詳解Java中Quartz的簡單使用

    Quartz?是一個開源的作業(yè)調度框架,它完全由?Java?寫成,并設計用于?J2SE?和?J2EE?應用中。這篇文章主要通過示例和大家講講Quartz的簡單使用,需要的可以參考一下
    2023-04-04
  • MapStruct對象映射轉換解決Bean屬性拷貝性能問題

    MapStruct對象映射轉換解決Bean屬性拷貝性能問題

    無意間看到項目中有小伙伴用到了 MapStruct 來做對象映射轉換當時我就很好奇,這個是什么框架,能夠解決什么問題,帶著這兩個疑問就有了下面的文章
    2022-02-02
  • 使用MyBatis進行簡單的更新與查詢方式

    使用MyBatis進行簡單的更新與查詢方式

    這篇文章主要介紹了使用MyBatis進行簡單的更新與查詢方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java實現經典大富翁游戲的示例詳解

    Java實現經典大富翁游戲的示例詳解

    大富翁,又名地產大亨。是一種多人策略圖版游戲。參與者分得游戲金錢,憑運氣(擲骰子)及交易策略,買地、建樓以賺取租金。本文將通過Java實現這一經典游戲,感興趣的可以跟隨小編一起學習一下
    2022-02-02
  • Java中的split使用方法詳解

    Java中的split使用方法詳解

    這篇文章主要介紹了Java中的split使用方法詳解,Java 中 String 的 split 方法可以將字符串根據指定的間隔進行切割,經過切割后得到的返回值是一個字符串數組,需要的朋友可以參考下
    2023-10-10
  • Java面向對象之包裝類的用途與實際使用

    Java面向對象之包裝類的用途與實際使用

    所謂包裝類,就是能夠直接將簡單類型的變量表示為一個類,在執(zhí)行變量類型的相互轉換時,我們會大量使用這些包裝類,本文我們來深入探索一下Java包裝類的相關內容,需要的朋友可以參考下
    2022-03-03
  • Mybatis-plus如何通過反射實現動態(tài)排序不同字段功能

    Mybatis-plus如何通過反射實現動態(tài)排序不同字段功能

    這篇文章主要介紹了Mybatis-plus如何通過反射實現動態(tài)排序不同字段功能,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • SpringBoot+React實現計算個人所得稅

    SpringBoot+React實現計算個人所得稅

    本文將以個人所得稅的計算為例,使用React+SpringBoot+GcExcel來實現這一功能,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的小伙伴可以了解下
    2023-09-09
  • JSON序列化Redis讀取出錯問題解決方案

    JSON序列化Redis讀取出錯問題解決方案

    這篇文章主要介紹了JSON序列化Redis讀取出錯問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • Java中JDK動態(tài)代理的超詳細講解

    Java中JDK動態(tài)代理的超詳細講解

    JDK 的動態(tài)代理是基于攔截器和反射來實現的,JDK代理是不需要第三方庫支持的,只需要JDK環(huán)境就可以進行代理,下面這篇文章主要給大家介紹了關于Java中JDK動態(tài)代理的超詳細講解,需要的朋友可以參考下
    2022-10-10

最新評論