Java8的時間日期API

原先的時間 api  大部分已通過時了api

Date構造器 須要傳入年月日  可是對時間的加減操做比較麻煩spa

Calenda  加減比較方便 unix

 

 

 

使用 LocalDate、 LocalTime、 LocalDateTimecode


 

 LocalDate、 LocalTime、 LocalDateTIme 類的實例是不可變的對象。分別使用ISO-8601日曆系統的日期、時間、日期和時間。他們提供了簡單的日期或時間,並不包含當前的時間信息。也不包含與時區相關的信息。對象

  

他們的使用方式一如出一轍,可是專注程度不同。專門表示日期,專門表示時間,表示時間好日期blog

 

加減操做時候,有不少API能夠使用的。根據狀況場景本身選擇。get

加法操做io

 減法操做:class

 

 

 

 @Test
    public void test1(){
        //方式一
        LocalDateTime dateTime1 = LocalDateTime.now();
        System.out.println(dateTime1);

        //方式二
        LocalDateTime dateTime2 = LocalDateTime.of(2018, 05, 21, 13, 22, 33);
        System.out.println(dateTime2);

       //獲取的操做
        System.out.println( dateTime1.getYear());
        System.out.println(dateTime1.getHour());
    }

 

 

 

以上是人讀的,下面是計算機讀的:test

 

Instant: 時間戳

   Unix元年, 1970年1月1日00:00:00 到某個時間之間的毫秒值

  

   @Test
    public void test(){
        Instant now = Instant.now();  //默認是獲取的 UTC 時區
        System.out.println(now);

        OffsetDateTime offsetDateTime = now.atOffset(ZoneOffset.ofHours(8));//相差8個時區的狀況
        System.out.println(offsetDateTime);
        //各類屬性值的獲取
        System.out.println(now.getEpochSecond());
        //1000s
        Instant instant = Instant.ofEpochSecond(1000); //從unix時間開始加1000秒
        System.out.println(instant);
    }

補充:

API獲取個各類屬性

 

 

 計算兩個時間的間隔:

  Duration: 計算兩個時間之間的間隔

   Period: 計算兩個日期之間的間隔

 

   @Test
    public void test3() throws InterruptedException {
       Instant now1 = Instant.now();
       Thread.sleep(1000);
       Instant now2 = Instant.now();
     //計算兩個時間戳的間隔
       Duration between = Duration.between(now1, now2);
       System.out.println(between.getSeconds()); 
   

 

 

 這塊兒API不少:

 

 

duration也有不少API能夠調用的!能夠作加減運算!

 

 @Test
    public void test3() throws InterruptedException {
       Instant now1 = Instant.now();
       Thread.sleep(1000);
       Instant now2 = Instant.now();
     //計算兩個時間戳的間隔
       Duration between = Duration.between(now1, now2);
       System.out.println(between.getSeconds());

       LocalTime now3 = LocalTime.now();
       Thread.sleep(1000);
       LocalTime now4 = LocalTime.now();
       System.out.println(Duration.between(now3, now4).toMillis());
   }

 

日期的間隔:

 @Test
   public void test4(){
       LocalDate of = LocalDate.of(2016, 2, 5);
       LocalDate now = LocalDate.now();
       Period between = Period.between(now, of);
       System.out.println(between);
       System.out.println(between.getYears());
       System.out.println(between.getMonths());
   }

相關文章
相關標籤/搜索