一、LocalDateTime基礎介紹
LocalDateTime是Java 8中新引入的時間日期類,描述的是不帶時區的日期時間,以年、月、日、時、分、秒、納秒的形式存儲時間,也可以進行計算、格式化和解析。LocalDateTime類是一個不可變的對象,不可變是指它的值一旦確定就無法更改。
LocalDateTime now = LocalDateTime.now(); // 獲取當前時間 LocalDateTime specificDate = LocalDateTime.of(2022, Month.JANUARY, 1, 10, 10, 30); // 指定日期時間 LocalDateTime dateTimeFromInstant = LocalDateTime.ofInstant(Instant.now(), ZoneId.systemDefault()); // 從Instant中獲取日期時間
可以通過常用的方法構建LocalDateTime對象,如now()獲取當前時間,of()指定日期時間,ofInstant()從一個Instant對象中獲取日期時間等。
二、LocalDateTime的常用方法
1. add()和minus()
add()方法可以將指定的時間段加到當前的LocalDateTime對象上,minus()方法可以將指定的時間段減去當前的LocalDateTime對象,這兩個方法都會返回一個新的LocalDateTime對象。
// 原時間為2020-04-21 13:30:45 LocalDateTime newDateTime1 = now.plusDays(1); // 增加一天,2020-04-22 13:30:45 LocalDateTime newDateTime2 = now.minusHours(5); // 減去5小時,2020-04-21 08:30:45
2. with()
with()方法可以指定LocalDateTime對象的某個字段,返回一個新的LocalDateTime對象。
LocalDateTime newDateTime = now.withYear(2022).withMonth(2).withDayOfMonth(2); // 將年月日都設置為2022-02-02
3. get()
get()方法可以獲取LocalDateTime對象的某個字段的值,比如獲取年、月等。
int year = specificDate.getYear(); // 獲取年份 Month month = specificDate.getMonth(); // 獲取月份 int day = specificDate.getDayOfMonth(); // 獲取日期 int hour = specificDate.getHour(); // 獲取小時 int minute = specificDate.getMinute(); // 獲取分鐘 int second = specificDate.getSecond(); // 獲取秒 int nano = specificDate.getNano(); // 獲取納秒
4. isBefore()和isAfter()
isBefore()和isAfter()方法用於比較兩個LocalDateTime對象的大小關係。
boolean isBefore = now.isBefore(specificDate); // 判斷now是否在specificDate之前 boolean isAfter = now.isAfter(specificDate); // 判斷now是否在specificDate之後
5. format()
format()方法用於將LocalDateTime對象格式化成字符串。
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); // 定義格式化器 String formattedDateTime = now.format(formatter); // 格式化成字符串 System.out.println(formattedDateTime); // 輸出:2020-04-21 13:30:45
三、總結
LocalDateTime是Java 8中的一個重要時間日期類,支持日期時間的創建、計算、格式化和解析等功能。它不受時區的影響,適合於處理不涉及時區的時間日期計算和處理場景。
原創文章,作者:LTAFC,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/334574.html