1、LocalDatecode
一、LocalDate並不包含當天的時間信息,也不附帶任何與時區有關的信息。對象
二、建立方法blog
(1)經過靜態工廠方法建立一個LocalDate實例。 LocalDate date = LocalDate.of(2014,3,8) (2)LocalDate today = LocalDate.now(); (3)LocalDate date = LocalDate.parse("2014-03-18");
三、讀取LocalDate對象的值three
(1)直接讀取get
LocalDate date = LocalDate.of(2014,3,18); int year = date.getYear();//2014 Month month = date.getMonth(); //MARCH int day = date.getDayOfMonth(); //18 DayOfWeek dow = date.getDayOfWeek();//TUESDAY int len = date.lengthOfMonth(); //31 boolean leap = date.isLeapYear(); //false
(2)使用TemporalFieldit
LocalDate date = LocalDate.of(2014,3,18); int year = date.get(ChronoField.YEAR);//2014 int month = date.get(ChronoField.MONTH_OF_YEAR); // 3 int day = date.get(ChronoField.DAY_OF_MONTH); //18
2、LocalTimeio
一、建立方法ast
(1)LocalTime time1 = LocalTime.of(13,3);//時,分 (2)LocalTime time2 = LocalTime.of(13,3,18);//時,分,秒 (3)LocalTime time3 = LocalTime.parse("13:45:50");
二、讀取LocalTime的值date
int hour = time3.getHour(); int minute = time3.getMinute(); int second = time3.getSecond();
3、合併日期和時間方法
LocalDate date = LocalDate.parse("2014-03-18"); LocalTime time = LocalTime.of(13,3);//時,分 LocalDateTime dt1 = LocalDateTime.of(2014,Month.AUGUST,18,13,45,20); LocalDateTime dt2 = LocalDateTime.of(date,time); LocalDateTime dt3 = date.atTime(time); LocalDateTime dt4 = date.atTime(13,3); LocalDateTime dt5 = date.atTime(13,3,30); LocalDateTime dt6 = time.atDate(date); LocalDate date1 = dt6.toLocalDate(); LocalTime time3 = dt6.toLocalTime();
4、機器的日期和時間格式
一、建立方法
Instant.ofEpochSecond(3); Instant.ofEpochSecond(3,0); Instant.ofEpochSecond(2,1000000000); Instant.ofEpochSecond(4,-1000000000); Instant.now();
5、Duration
用來表示兩個LocalDateTime,兩個LocalTime,兩個Instant之間的間隔時長。
一、建立方法
Instant instant1 = Instant.ofEpochSecond(3); Instant instant2 = Instant.ofEpochSecond(3,0); LocalTime time1 = LocalTime.of(13,3);//時,分 LocalTime time2 = LocalTime.of(13,3);//時,分 LocalDateTime dt1 = LocalDateTime.of(2014,Month.AUGUST,18,13,45,20); LocalDateTime dt2 = LocalDateTime.of(2014,Month.AUGUST,18,13,45,20); Duration d1 = Duration.between(instant1,instant2); Duration d2 = Duration.between(time1,time2); Duration d3 = Duration.between(dt1,dt2);
二、直接建立對應實例
Duration threeMinutes = Duration.ofMinutes(3); Duration threeMinutes = Duration.of(3, ChronoUnit.MINUTES);
6、Period
以年月日的方式對多個時間單位建模。該類的工廠方法between,能夠獲得兩個LocalDate之間的時長
一、建立方法
LocalDate date1 = LocalDate.parse("2014-03-18"); LocalDate date2 = LocalDate.parse("2014-03-18"); Period period = Period.between(date2,date1);
二、直接建立對應實例
Period tenDays = Period.ofDays(10); Period tenWeeks = Period.ofWeeks(10); Period tenYearsSixMonthOneDay = Period.of(10,6,1);
7、操做日期
使用以下方法操做日期後,返回一個修改了屬性的對象。它們都不會修改原來的對象。
一、以比較直觀的方式操做LocalDate的屬性
LocalDate date1 = LocalDate.parse("2014-03-18"); LocalDate date2 = date1.withYear(2011);//2011-03-18 LocalDate date3 = date1.withDayOfMonth(24);//2011-03-24 LocalDate date4 = date1.with(ChronoField.MICRO_OF_DAY,9);//2011-09-24
二、採用with方法,它接收一個TemporalField對象,全部日期和時間API都實現了get和with方法,它們將TemporalField的讀取和修改區分開。
LocalDate date1 = LocalDate.parse("2014-03-18"); LocalDate startDate =date1.with(TemporalAdjusters.firstDayOfMonth()); LocalDate endtDate = date1.with(TemporalAdjusters.firstDayOfMonth());
三、以相對方式修改LocalDate對象的屬性
LocalDate date1 = LocalDate.parse("2014-03-18"); LocalDate date2 = date1.plusWeeks(1);//2014-03-25 LocalDate date3 = date1.minusYears(3);//2011-03-25 LocalDate date4 = date1.plus(6,ChronoUnit.MONTHS);//2011-09-25
8、更復雜的操做
好比將日期調整到下個週日,下個工做日,或者本月的最後一天,,可以使用重載版本的with,向其傳遞一個提供了更多定製化選擇的TemporalAdjuster對象,更加靈活的處理日期。
LocalDate date1 = LocalDate.parse("2014-03-18"); LocalDate date2 = date1.with(nextOrSame(DayOfWeek.SATURDAY));//2014-03-23 LocalDate date3 = date1.with(lastDayOfMonth());//2011-03-31