Java8时间格式化详解
新时间API
Java 8引入了java.time包,提供了全新日期时间API。
LocalDateTime
1 2 3 4 5 6 7 8 9
| LocalDateTime now = LocalDateTime.now(); LocalDateTime of = LocalDateTime.of(2024, 1, 1, 12, 0);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); String str = now.format(formatter);
LocalDateTime parse = LocalDateTime.parse("2024-01-01 12:00:00", formatter);
|
1 2 3 4 5
| DateTimeFormatter.ofPattern("yyyy-MM-dd"); DateTimeFormatter.ofPattern("HH:mm:ss"); DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter.ofPattern("yyyy年MM月dd日");
|
时间计算
1 2
| LocalDateTime plus = now.plusDays(1).plusHours(2); LocalDateTime minus = now.minusMonths(1);
|
与旧API互转
1 2 3 4 5 6 7 8 9
| Date date = new Date(); Instant instant = date.toInstant(); LocalDateTime ldt = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
LocalDateTime ldt = LocalDateTime.now(); Instant instant = ldt.atZone(ZoneId.systemDefault()).toInstant(); Date date = Date.from(instant);
|
总结
Java 8时间API更加清晰易用,建议替换掉旧的Date和Calendar。