### 第一個時間戳的小例子
```
Instant start = Instant.now();
Instant end = Instant.now();
System.out.println(Duration.between(start,end).toMillis());
```
* * * * *
傳統的時間類型的API存在線程安全的問題。
### LocalDate,LocalDateTime,LocalTime
public final class LocalDate...{}
提供簡單的日期或時間,并不包含當前的時間信息。
```
LocalDate localDate = LocalDate.now(); //2017-12-18
LocalDateTime localDateTime = LocalDateTime.now(); //2017-12-18T16:14:22.878
LocalTime localTime = LocalTime.now(); //16:15:11.448
localTime.plus()
localTime.minus()
```
### Instant 時間戳
以UNIX元年1970年1月1日0時0分0秒到某個時間的毫秒值。
```
Instant start = Instant.now(); //獲取的是UTC時區(格林威治時間)
```
### Duration
計算二個時間之間的間隔
```
Instant start = Instant.now();
Instant end = Instant.now();
System.out.println(Duration.between(start,end).toMillis());
```
### Period
計算二個日期之間的間隔
```
LocalDate start = LocalDate.of(2016,12,1);
LocalDate end = LocalDate.now();
System.out.println(Period.between(start,end).getDays()); //得到差的天數
```
Period的方法源碼 只接受LocalDate
```
public static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive) {
return startDateInclusive.until(endDateExclusive);
}
```
### TemporalAdjuster時間校正器
LocalDate.now().with(TemporalAdjusters.firstDayOfMonth());
。。。。。