1. 程式人生 > >Java1.8新特性(Time類)

Java1.8新特性(Time類)

1:LocalDate(日期類):

public class TimeDemo {
    public static void main(String[] args) {
        // 01:獲取當前時間
        LocalDate now = LocalDate.now();
        System.out.println("當前時間:" + now);

        // 02:自定義當前時間
        LocalDate data = LocalDate.of(1997, 02, 21);
        System.out.println("自定義當前時間:" + data);

        // 03:修改時間的格式
        String dataWithString = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        System.out.println("當前時間的String格式:" + dataWithString);

        // 04:解析當前時間
        LocalDate parseTime = LocalDate.parse("1997-02-21");
        System.out.println("解析當前的時間" + parseTime);

        // 05:獲取今天是本月的第幾天
        int dayOfMonth = LocalDate.now().getDayOfMonth();
        System.out.println("dateOfMonth:" + dayOfMonth);

        // 06:獲取今天是今年的第多少天
        int dateOfYear = LocalDate.now().getDayOfYear();
        System.out.println("dateOfYear:" + dateOfYear);

        // 07:獲取年
        int year = LocalDate.now().getYear();
        System.out.println("year:" + year);

        // 08:獲取星期
        DayOfWeek week = LocalDate.now().getDayOfWeek();
        System.out.println(week.getValue());

        // 09:獲取當前時間並給它加一定的天數
        LocalDate localDate = LocalDate.now().plusDays(5);
        System.out.println("新增一定天數後的時間:" + localDate);

        // 10:獲取當前時間並給它減一定的天數
        LocalDate minusDate = LocalDate.now().minusDays(9);
        System.out.println("減去一定天數後的時間:" + minusDate);

        // 11:計算兩個日期間的天數
        long dates = localDate.until(minusDate, ChronoUnit.DAYS);
        System.out.println("相差的天數:" + dates);

        // 12:計算兩個日期間的天數的週數
        long until = localDate.until(minusDate, ChronoUnit.WEEKS);
        System.out.println("相差的週數:" + until);
    }
}

執行結果:

可以看到LocalDate的until方法獲取的還能是負數,所以在獲取相差的天數時需要注意。

LocalTime類(時間類)

        // 01:獲取帶毫秒值的當前時間
        LocalTime now = LocalTime.now();
        System.out.println("當前時間:" + now);

        // 02:獲取不帶毫秒值的當前時間
        LocalTime nowWithNoNano = LocalTime.now().withNano(0);
        System.out.println("不帶毫秒值的當前時間:" + nowWithNoNano);

        // 03:獲取不帶毫秒值不帶分鐘的時間
        LocalTime nowWithNoSeconde = LocalTime.now().withNano(0).withSecond(0);
        System.out.println("不帶毫秒不帶分鐘的時間:" + nowWithNoSeconde);

        // 04:獲取不帶毫秒值不帶分鐘的時間還可以這樣做(格式化處理)
        String nowTime = LocalTime.now().format(DateTimeFormatter.ofPattern("hh:mm"));
        System.out.println("nowTime:" + nowTime);

        // 05:獲取制定的時間
        LocalTime localTime = LocalTime.parse("06:00");
        System.out.println("指定時間:" + localTime);

        // 06:獲取指定時間還可以這樣做
        LocalTime localTime1 = LocalTime.of(6,00);
        System.out.println("localTime1:" + localTime1);

執行結果:

還有很多api,用到的時候去查就可以。基本用法對著ide的api能寫出來知道啥意思就行了。

LocalDateTime類(時間日期類)

        // 01:獲取當前時間
        LocalDateTime now = LocalDateTime.now();
        System.out.println("now: " + now);

        // 02:格式化一下當前時間
        String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss E"));
        System.out.println("格式化處理後的時間: " + time);

        // 03:使用with開頭的方法可以設定對應的年月日等
        LocalDateTime localDateTime = LocalDateTime.now().withYear(1997);
        System.out.println("localDateTime: " + localDateTime);
        
        // 04:使用get開頭的方法可以獲取對應的年月日等
        int dayOfMonth = LocalDateTime.now().getDayOfMonth();
        System.out.println("dayOfMonth: " + dayOfMonth);

運些結果:


TemporalAdjusters類:

   是一個用來計算的類,提供了各種各樣的計算方法。比如獲取某個月的第一天,某個月的最後一天,某一年的第一天,某一年的第幾天等各種計算方法;

執行結果