關於Java8日期類在開發中的總結
阿新 • • 發佈:2021-09-06
日期類分為LocalDate、LocalTime和LocalDateTime。其中LocalDateTime是一個複合類,是LocalDate和LocalTime的組成。
初始化日期類
- 獲取當前時間
LocalDate localDate = LocalDate.now();
LocalTime localTime = LocalTime.now();
LocalDateTime localDateTime = LocalDateTime.now()
- 根據時間字串
LocalDate localDate = LocalDate.parse("2021-09-06"); LocalTime localTime = LocalTime.parse("09:51:51"); LocalDateTime localDateTime = LocalDateTime.parse("2021-09-06T09:51:51");
- 如果數字不是十位數,則前面要補0,比如 2021-9-6 和 9:51:51 都會報錯。
- LocalDateTime如果根據字串初始化,必須使用ISO-8601模式,比如 年月日T時分秒
- 根據日期解析類和時間字串
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd"); LocalDate localDate = LocalDate.parse("2021/09/06", dateTimeFormatter); DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("HH:mm:ss"); LocalTime localTime = LocalTime.parse("10:52:22", dateTimeFormatter1); DateTimeFormatter dateTimeFormatter2 = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss"); LocalDateTime localDateTime = LocalDateTime.parse("2021/09/06 10:52:22", dateTimeFormatter2);
- 使用Date物件進行轉換
在資料實體中,一般使用Date物件對映資料庫的時間欄位,在業務中需要將Date物件轉換為LocalTimeDate物件。
Date date = new Date();
Instant instant = date.toInstant();
LocalDateTime localDateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
- LocalDateTime.ofInstant需要兩個引數,Instant類(Unix元年時間開始所經歷的秒數)和時區