日期时间处理
Java8内每个类含义
在 Java8 之前操作时间,用的都是 Date 和 Calendar 类,但这两个类,操作起来及其繁琐,且在时间转换、时区转换的时候也很麻烦,因此 JDK 官方在 8 之后,引入了 LocalDateTime 以及相关类,通过新的类来定义和操作时间,也十分的简单清晰,下面我们就来我看一下如何操作。
- Instant: 时间戳
- Duration: 持续时间, 时间差
- LocalDate: 只包含⽇期, ⽐如: 2016-10-20
- LocalTime: 只包含时间, ⽐如: 231210
- LocalDateTime: 包含⽇期和时间, ⽐如: 2016-10-20 231421
- Period: 时间段
- ZoneOffset: 时区偏移量, ⽐如: +8:00
- ZonedDateTime: 带时区的时间
- Clock: 时钟, ⽐如获取⽬前美国纽约的时间
代码实现
localdatetime -> 其他类型
// =================================================================================
public static Date localDateTimeToDate(LocalDateTime localDateTime) {
Date date = Date.from(localDateTime.toInstant(ZoneOffset.ofHours(8)));
return date;
}
public static Date localDateTimeToDate(LocalDateTime localDateTime, ZoneOffset zoneOffset) {
Date date = Date.from(localDateTime.toInstant(zoneOffset));
return date;
}
public static long localDateTimeToTimestamp(LocalDateTime localDateTime) {
long timestamp = localDateTime.toInstant(ZoneOffset.ofHours(8)).getEpochSecond();
return timestamp;