Java8 本地DateTime API

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

 

使用Java8,新的日期时间API引入覆盖旧的日期时间API的以下缺点。

  • 非线程安全 - java.util.Date不是线程安全的,因此开发者必须在使用日期处理并发性问题。新的日期时间API是不可变的,并且没有setter方法。

  • 设计不佳 - 默认的开始日期从1900年,开始每月从1天从0开始,所以没有统一。不直接使用方法操作日期。新的API提供了这样操作实用方法。

  • 困难的时区处理 - 开发人员必须编写大量的代码来处理时区的问题。新的API设计开发保持特定领域设计。

Java8Tester.java

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编译器编译如下类

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 

posted @ 2017-02-06 17:33  这个名字想了很久~  阅读(2174)  评论(0编辑  收藏  举报