Java8 本地DateTime API

原文:http://www.yiibai.com/java8/java8_localdateapi.htmlhtml

 

使用Java8,新的日期時間API引入覆蓋舊的日期時間API的如下缺點。java

  • 非線程安全 - java.util.Date不是線程安全的,所以開發者必須在使用日期處理併發性問題。新的日期時間API是不可變的,而且沒有setter方法。api

  • 設計不佳 - 默認的開始日期從1900年,開始每個月從1天從0開始,因此沒有統一。不直接使用方法操做日期。新的API提供了這樣操做實用方法。安全

  • 困難的時區處理 - 開發人員必須編寫大量的代碼來處理時區的問題。新的API設計開發保持特定領域設計。併發

Java8Tester.javayii

import java.time.LocalDate;
import java.time.LocalTime;
import java.time.LocalDateTime;
import java.time.Month;

public class Java8Tester {
   public static void main(String args[]){
      Java8Tester java8tester = new Java8Tester();
      java8tester.testLocalDateTime(); 
   }

   public void testLocalDateTime(){
      // Get the current date and time
      LocalDateTime currentTime = LocalDateTime.now();     
      System.out.println("Current DateTime: " + currentTime);

      LocalDate date1 = currentTime.toLocalDate();
      System.out.println("date1: " + date1);
      Month month = currentTime.getMonth();
      int day = currentTime.getDayOfMonth();
      int seconds = currentTime.getSecond();
      System.out.println("Month: " + month
         +"day: " + day
         +"seconds: " + seconds
      );

      LocalDateTime date2 = currentTime.withDayOfMonth(10).withYear(2012);
      System.out.println("date2: " + date2);

      //12 december 2014
      LocalDate date3 = LocalDate.of(2014, Month.DECEMBER, 12); 
      System.out.println("date3: " + date3);

      //22 hour 15 minutes
      LocalTime date4 = LocalTime.of(22, 15); 
      System.out.println("date4: " + date4);

      //parse a string
      LocalTime date5 = LocalTime.parse("20:15:30"); 
      System.out.println("date5: " + date5);
   }    
}

 

使用javac編譯器編譯以下類spa

C:\JAVA>javac Java8Tester.java

如今運行Java8Tester看到的結果線程

C:\JAVA>java Java8Tester

看到結果設計

Current DateTime: 2014-12-09T11:00:45.457                                
date1: 2014-12-09                                                        
Month: DECEMBERday: 9seconds: 45                                         
date2: 2012-12-10T11:00:45.457                                           
date3: 2014-12-12                                                        
date4: 22:15                                                             
date5: 20:15:30 
相關文章
相關標籤/搜索