天天看點

Java8新的時間API擷取時間內插補點Java8新的時間API擷取時間內插補點與以前的java.util.Date擷取時間內插補點對比

Java8新的時間API擷取時間內插補點與以前的java.util.Date擷取時間內插補點對比

新的時間API分别為 LocalDate、LocalTime 和 LocalDateTime三個類,位于java.time包下,相比于以前的時間處理方式,線上程安全、時區處理、設計等方面做了優化

想要自己寫一個計算時間的小腳本,想嘗試一下新的API,問題解決了做一個簡單的記錄,純手打(雖然沒有幾個字)

一、使用Date計算時間內插補點

/**
     * 計算兩個時間的內插補點 使用Date SimpleDateFormat方式
     * @throws ParseException
     */
    public static void oldFunction() throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH.mm");
        Date start = simpleDateFormat.parse("8.56");
        Date end = simpleDateFormat.parse("18.56");
        long result = end.getTime() - start.getTime();
        //如果需要其他機關需要自己轉換
        System.out.println(result); //36000000 機關是毫秒
        
    }
           

二、使用LocalTime計算時間內插補點

/**
     * 計算兩個時間的內插補點,使用Java8全新的日期和時間API
     */
    public static void newFunction(){
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm");
        LocalTime start = LocalTime.parse("08:35", dateTimeFormatter);
        LocalTime end = LocalTime.parse("18:35", dateTimeFormatter);
        Duration duration = Duration.between(start, end);
        System.out.println(duration.toMinutes());  //分鐘
        System.out.println(duration.toHours());  //小時
        System.out.println(duration.toMillis());  //毫秒

    }