java8日期工具類封裝的實戰(zhàn)記錄
前言
java現(xiàn)在應該是更新到16了,想想我當年剛參加工作的時候。普遍還都是java7,那時候沒有SpringBoot,沒有springCloud,沒有我的那個她 哈哈,扯的有點遠了,拉回正題
今天我們聊聊java的日期類的一些騷操作
在Java 8中如何處理日期和時間
Java 8 中的 LocalDate 用于表示當天日期。和java.util.Date不同,它只有日期,不包含時間。當你僅需要表示日期時就用這個類。
LocalDate today = LocalDate.now();
System.out.println("Today's Local date : " + today);
Today's Local date : 2021-08-27
那接下來比如我們獲取具體的年月日
LocalDate today = LocalDate.now();
int year = today.getYear();
int month = today.getMonthValue();
int day = today.getDayOfMonth();
System.out.printf("Year="+year + "month =" +month + "day ="+day);
Year=2021month = 8day=27
那肯定有小伙伴問了,那比如我們平時工作過程中怎么指定格式化日期呢?
在上面第一個例子里,我們通過靜態(tài)工廠方法now()非常容易地創(chuàng)建了當天日期,你還可以調用另一個有用的工廠方法LocalDate.of()創(chuàng)建任意日期, 該方法需要傳入年、月、日做參數(shù),返回對應的LocalDate實例。
LocalDate yearAndMonthDay = LocalDate.of(2021, 08, 27);
System.out.println("yearAndMonthDay is : " + yearAndMonthDay);
yearAndMonthDay is : 2021-08-27
先介紹這幾種,下面給出自己再封裝的一些常用方法
再封裝
下面我是在平常過程當中簡單寫了幾個工具方法
**
* java 8 日期工具類再封裝
* 盡量用java8的工具類操作日期
* @Date 2021/6/2 4:01 下午
* @Author yn
*/
@Component
public class LocalDateUtil {
/**
* 比較第一個日期是否小于第二個日期
* @param firstDate 第一個日期
* @param secondDate 第二個日期
* @return true-小于;false-大于
*/
public static boolean localDateIsBefore(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isBefore(secondDate);
}
/**
* 比較第一個日期是否大于第二個日期
* @param firstDate 第一個日期
* @param secondDate 第二個日期
* @return true-大于;false-不大于
*/
public static boolean localDateIsAfter(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isAfter(secondDate);
}
/**
* 比較兩個日期是否相等
* @param firstDate 第一個日期
* @param secondDate 第二個日期
* @return true-相等;false-不相等
*/
public static boolean localDateIsEqual(LocalDate firstDate, LocalDate secondDate) {
return firstDate.isEqual(secondDate);
}
/**
* 字符串轉換datetime
* @param dateTime
* @return yyyy-MM-dd HH:mm:ss
*/
public static Date stringCoverDateTime(String dateTime){
LocalDateTime startDateTime =
LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
return LocalDateTimeToDate;
}
/**
* 字符串轉換date
* @param dateTime
* @return yyyy-MM-dd
*/
public static Date stringCoverDate(String dateTime){
LocalDateTime startDateTime =
LocalDateTime.parse(dateTime, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
Date LocalDateTimeToDate = Date.from(startDateTime.atZone(ZoneId.systemDefault()).toInstant());
return LocalDateTimeToDate;
}
}
Java8新增的日期、時間包
為了彌補傳統(tǒng)Java對日期、時間處理的不足,Java8提供了一套全新的日期時間庫。Java8專門新增了一個java.time包,該包下包含了如下常用類。(各位小伙伴可以去該包下面看下)
- Clock:該類用于獲取指定時區(qū)的當前日期、時間。該類可以取代System類的currentTimeMillis()方法,該類提供了大量的方法獲取當前的日期和時間
- Duration:該類代表持續(xù)時間
- Instant:該類代表一個具體的時刻,可以精確到納秒。該類主要提供了以下幾個方法:
1)now():獲取當前時刻。
2)now(Clock clock):獲取clock對應的時刻。
3)minusXxx():在當前時刻基礎上減去一段時間。
4)plusXxx():在當前時刻基礎上加上一段時間。
- LocalDate:該類代表不帶時區(qū)的日期,如:2021-08-27
- LocalTime:該類代表不帶時區(qū)的時間,如:10:20:09
- LocalDateTime:該類代表不帶時區(qū)的日期、時間,如:2021-08-27T10:20:09。
- ZonedDateTime:該類代表一個時區(qū)化的日期、時間。
- ZonedId:該類代表一個時區(qū)。
- DayOfWeek:該類是一個枚舉類,定義了周日到周六的枚舉值。
- Month:該類是一個枚舉類,定義了一月到十二月的枚舉值。
OK。java8的日期的類先介紹到這里
總結
我們應該學會總結,java的每一次迭代 都會更新呢一些有利于我們開發(fā)的工具類,我們在日常開發(fā)中,要學會利用并總結出一套提高開發(fā)效率的一種東西
到此這篇關于java8日期工具類封裝的文章就介紹到這了,更多相關java8日期工具類封裝內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis中使用InsertProvider注解報錯解決全過程
這篇文章主要介紹了mybatis中使用InsertProvider注解報錯解決全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
SpringCloud動態(tài)配置注解@RefreshScope與@Component的深度解析
在現(xiàn)代微服務架構中,動態(tài)配置管理是一個關鍵需求,本文將為大家介紹Spring Cloud中相關的注解@RefreshScope與@Component的使用,需要的小伙伴可以參考下2025-04-04
Java String index out of range:100錯誤解決方案詳解
這篇文章主要介紹了Java String index out of range:100錯誤解決方案詳解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下2021-08-08

