### 第一个时间戳的小例子
```
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());
。。。。。