1. 程式人生 > >JAVA 8 主要新特性 ----------------(七)新時間日期 API -----LocalDate

JAVA 8 主要新特性 ----------------(七)新時間日期 API -----LocalDate

一、改版原因

       1、老闆的Date和Calander存在問題,日期操作名稱混亂,有的在text下,有的在util下,包名混亂
         2、Simple包混亂,致命錯誤執行緒不安全。
         3、1.8規範的放在java.time目錄下
二、1.8日期使用簡介

 1、使用 LocalDate、LocalTime、LocalDateTime

          LocalDate、LocalTime、LocalDateTime 類的實 例是不可變的物件,分別表示使用 ISO-8601日 歷系統的日期、時間、日期和時間。它們提供了簡單的日期或時間,並不包含當前的時間資訊。也不包含與時區相關的資訊。

   2、LocalDateJDK文件介紹

       

文字加程式碼

1  LocalDate localDateMin = LocalDate.MIN;
2         System.out.println("localDateMin年的最小取值範圍 :\n" + localDateMin);
3 
4         LocalDate localDateText = LocalDate.parse("2018-12-05");
5         System.out.println("localDateText輸出字串日期 :\n" + localDateText);
View Code

 1 LocalDate localDate = LocalDate.now();
 2 
 3         System.out.println("localDate獲取當前yyyy-mm-dd :\n" + localDate);
 4 
 5         LocalDate localDateSystem = LocalDate.now(ZoneId.systemDefault());
 6 
 7         System.out.println("當前系統預設時間:\n" + localDateSystem);
8 9 LocalDate localDateChinese = LocalDate.now(ZoneId.of("GMT+8", new HashMap<>(64))); 10 11 System.out.println("獲取某個時區的國家當前日期:\n" + localDateChinese);
View Code

1 Clock clock = Clock.systemDefaultZone();
2         LocalDate localDateClock = LocalDate.now(clock);
3         System.out.println("localDateClock使用預設時區轉換為日期和時間yyyy-mm-dd:\n" + localDateClock);
View Code

now 的方法

下週一的日期
1 LocalDate nextMonday = LocalDate.now().with(TemporalAdjusters.next(DayOfWeek.MONDAY));
2 
3         System.out.println("nextMonday下週一的日期 :\n" + nextMonday);
View Code
獲取當前是年月情況
1 LocalDate localDateGet = LocalDate.now();
2 
3         System.out.println("localDateGet獲取當前是一年的第幾天 :\n" + localDateGet.getDayOfYear());
4         System.out.println("localDateGet獲取當前是本月的第幾天 :\n" + localDateGet.getDayOfMonth());
5         System.out.println("localDateGet獲取當前星期幾 :\n" + localDateGet.getDayOfWeek());
6         System.out.println("localDateGet獲取當前年 :\n" + localDateGet.getYear());
7         System.out.println("localDateGet獲取當前月 :\n" + localDateGet.getMonth());
View Code

1 LocalDate localDateOf = LocalDate.of(2018, 12, 30);
2 
3         System.out.println("localDateOf獲取設定的yyyy-mm-dd:\n" + localDateOf);
4 
5         LocalDate localDateOfYearDay = LocalDate.ofYearDay(2018, 352);
6 
7         System.out.println("localDateOfYearDay獲取一年的第352天是哪月哪日的yyyy-mm-dd:\n" + localDateOfYearDay);
View Code

1 LocalDate dateFromBase = LocalDate.ofEpochDay(365);
2         System.out.println("1970年的365天后是:\n" + dateFromBase);
View Code

1 LocalDate localDateFormatNow = LocalDate.from(ZonedDateTime.now());
2         System.out.println("當前日期是:\n" + localDateFormatNow);
View Code

1 LocalDate localDateText = LocalDate.parse("2018-12-05");
2         System.out.println("localDateText輸出字串日期 :\n" + localDateText);
3 
4         LocalDate localDateFormat = LocalDate.parse("20181223", DateTimeFormatter.BASIC_ISO_DATE);
5         System.out.println("localDateFormat格式化日期 :\n" + localDateFormat);
View Code

 

git地址:點選這裡

目前總結這些,以後使用到還會補充,希望對於大家有幫助,如果有疑問請留下您的問題,大家一起共同討論