程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java 8中日期和時光的處置辦法

Java 8中日期和時光的處置辦法

編輯:關於JAVA

Java 8中日期和時光的處置辦法。本站提示廣大學習愛好者:(Java 8中日期和時光的處置辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java 8中日期和時光的處置辦法正文


Java 8新增了LocalDate和LocalTime接口,為何要弄一套全新的處置日期和時光的API?由於舊的java.util.Date其實是太難用了。

java.util.Date月份從0開端,一月是0,十二月是11,失常吧!java.time.LocalDate月份和禮拜都改成了enum,就弗成能再用錯了。

java.util.Date和SimpleDateFormatter都不是線程平安的,而LocalDate和LocalTime和最根本的String一樣,是不變類型,不只線程平安,並且不克不及修正。

java.util.Date是一個“全能接口”,它包括日期、時光,還有毫秒數,假如你只想用java.util.Date存儲日期,或許只存儲時光,那末,只要你曉得哪些部門的數據是有效的,哪些部門的數據是不克不及用的。在新的Java 8中,日期和時光被明白劃分為LocalDate和LocalTime,LocalDate沒法包括時光,LocalTime沒法包括日期。固然,LocalDateTime能力同時包括日期和時光。

新接口更好用的緣由是斟酌到了日期時光的操作,常常產生往前推或往後推幾天的情形。用java.util.Date合營Calendar要寫很多多少代碼,並且普通的開辟人員還紛歧定能寫對。

LocalDate

看看新的LocalDate怎樣用:

// 取以後日期:
LocalDate today = LocalDate.now(); // -> 2014-12-24
// 依據年代日取日期,12月就是12:
LocalDate crischristmas = LocalDate.of(2014, 12, 25); // -> 2014-12-25
// 依據字符串取:
LocalDate endOfFeb = LocalDate.parse("2014-02-28"); // 嚴厲依照ISO yyyy-MM-dd驗證,02寫成2都不可,固然也有一個重載辦法許可本身界說格局

LocalDate.parse("2014-02-29"); // 有效日期沒法經由過程:DateTimeParseException: Invalid date

日期轉換常常碰到,好比:

// 取本月第1天:
LocalDate firstDayOfThisMonth = today.with(TemporalAdjusters.firstDayOfMonth()); // 2014-12-01
// 取本月第2天:
LocalDate secondDayOfThisMonth = today.withDayOfMonth(2); // 2014-12-02
// 取本月最初一天,不再用盤算是28,29,30照樣31:
LocalDate lastDayOfThisMonth = today.with(TemporalAdjusters.lastDayOfMonth()); // 2014-12-31
// 取下一天:
LocalDate firstDayOf2015 = lastDayOfThisMonth.plusDays(1); // 釀成了2015-01-01
// 取2015年1月第一個周一,這個盤算用Calendar要逝世失落許多腦細胞:
LocalDate firstMondayOf2015 = LocalDate.parse("2015-01-01").with(TemporalAdjusters.firstInMonth(DayOfWeek.MONDAY)); // 2015-01-05

LocalTime

LocalTime只包括時光,之前用java.util.Date怎樣能力只表現時光呢?謎底是,偽裝疏忽日期。

LocalTime包括毫秒:

LocalTime now = LocalTime.now(); // 11:09:09.240

你能夠想消除毫秒數:

LocalTime now = LocalTime.now().withNano(0)); // 11:09:09

結構時光也很簡略:

LocalTime zero = LocalTime.of(0, 0, 0); // 00:00:00
LocalTime mid = LocalTime.parse("12:00:00"); // 12:00:00

時光也是依照ISO格局辨認,但可以辨認以下3種格局:

•12:00
•12:01:02
•12:01:02.345

JDBC

最新JDBC映照將把數據庫的日期類型和Java 8的新類型聯系關系起來:

SQL -> Java
--------------------------

date -> LocalDate
time -> LocalTime
timestamp -> LocalDateTime

不再會湧現映照到java.util.Date個中日期或時光某些部門為0的情形了。

以上所述是小編給年夜家引見的Java 8中日期和時光的處置辦法,願望對年夜家有所贊助,假如年夜家有任何疑問請給我留言,小編會實時答復年夜家的。在此也異常感激年夜家對網站的支撐!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved