LocalDate、LocalTime、LocalTimeDate用法及計算時間差

java8新增了LocalDate、LocalTime、LocalTimeDate等,相比于之前的Date,新的類是線程安全的。
整理了一下各個場景下的用法,上代碼:

package dateTest;

import java.time.Duration;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.ChronoField;
import java.time.temporal.ChronoUnit;

public class DateTest {
    public static void main(String[] args) {
        LocalDate localDate = LocalDate.now();
        System.out.println("獲取當前日期==" + localDate);
        System.out.println("獲取月份==" + localDate.getMonthValue());
        System.out.println("獲取月份==" + localDate.getMonth());
        System.out.println("獲取年==" + localDate.getYear());
        System.out.println("獲取日==" + localDate.getDayOfMonth());
        System.out.println("獲取周==" + localDate.get(ChronoField.DAY_OF_WEEK));
        System.out.println("獲取周==" + localDate.getDayOfWeek());
        
        LocalTime localTime = LocalTime.now();
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
        String time = dateTimeFormatter.format(localTime);
        System.out.println("獲取時分秒==" + localTime);
        System.out.println("獲取時分秒==" + time);
        
        LocalDateTime localDateTime = LocalDateTime.now();
        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        String createTime = dateTimeFormatter1.format(localDateTime);
        System.out.println("獲取年月日時分秒==" + createTime);
        
        LocalDateTime dateTime = LocalDateTime.of(localDate, localTime);
        System.out.println("獲取年月日時分秒==" + dateTimeFormatter1.format(dateTime));
        
        LocalDateTime dateTime2 = LocalDateTime.parse("2020-05-20 20:20:20", dateTimeFormatter1);
        System.out.println("字符串轉(zhuǎn)換locaDateTime==" + dateTime2);
        
        //計算時間差
        Duration duration = Duration.between(dateTime2,  localDateTime );
        System.out.println("相差天數(shù)==" + duration.toDays());
        System.out.println("相差毫秒數(shù)==" + duration.toMillis());
        System.out.println("相差分鐘數(shù)==" + duration.toMinutes());
        System.out.println("相差小時數(shù)==" + duration.toHours());
        System.out.println("相差納秒數(shù)==" + duration.toNanos());
        
        //月份時間差
        LocalDate start = LocalDate.parse("2020-01-28");
        LocalDate end = LocalDate.parse("2020-06-03");
        long year = start.until(end, ChronoUnit.YEARS);
        long month = start.until(end, ChronoUnit.MONTHS);
        long days = start.until(end, ChronoUnit.DAYS);
        System.out.println("間隔:" + year + "年");
        System.out.println("間隔:" + month + "月");
        System.out.println("間隔:" + days + "天");
        
    }
    
    
    
}

運行結(jié)果如下圖:


LocalDateconsole結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 給自己總結(jié)一個所有JAVA版本更新的核心內(nèi)容總結(jié): JAVA 8 JAVA 8在java更新的歷史中是一個非常重要...
    暴走的狐貍閱讀 410評論 0 0
  • 對于很多剛接觸java語言的初學者來說,要了解一門語言,最好的方式就是要能從基礎(chǔ)的版本進行了解,升級的過程,以及升...
    timothyue1閱讀 398評論 0 1
  • 相較于 Date的優(yōu)勢: java.util.Date 和 SimpleDateFormatter 都不是線程安全...
    HungerDeng閱讀 5,650評論 1 3
  • 新特性總覽 lambda表達式 Stream操作數(shù)組 Optional取代null 簡潔的并發(fā)編程 LocalDa...
    androidjp閱讀 2,740評論 0 6
  • 目錄: 什么是時間?這是一個物理概念和哲學問題。物理學認為時間是一種尺度,一個標量,借著時間,事件發(fā)生之先后可以按...
    Wayne566閱讀 518評論 0 1

友情鏈接更多精彩內(nèi)容