实践Java8之新日期和时间API

Instant

表示时间轴上的一个时间点

例如:

1
Instant now = Instant.now();

可以进行加或减一段时间等到一个新的Instant

Duration

表示两个时间点之间的时间量

例如:

1
Duration duration = Duration.between(start, end);

可以通过toNanos、toMills、toSeconds等方法各种时间单位表示的Duration对象。

可以通过加、减、乘或除一段时间得到一个新的Duration

本地

LocaleDate

本地日期

LocalTime

本地时间

LocalDateTime

时区

ZoneId

ZonedDateTime

TemporalAdjusters

DateTimeFormatter

1
2
3
4
5
6
7
8
9
private static final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

public static String formatDate(LocalDateTime date) {
    return formatter.format(date);
}

public static LocalDateTime parseDate(String dateNow) {
    return LocalDateTime.parse(dateNow, formatter);
}

与旧API转换

就API主要包括:java.util.Date、java.util.GregorianCalender、java.sql.Date、java.sql.Time、java.sql.Timestamp,在Java8中分别对应增加了相应的方法实现与新API的互转