Date/Time 入门

使用类型安全的 Duration 和 Period 计算时间差。

✕ Pre-Java 8
// How many days between two dates?
long diff = date2.getTime()
    - date1.getTime();
long days = diff
    / (1000 * 60 * 60 * 24);
// ignores DST, leap seconds
✓ Java 8+
long days = ChronoUnit.DAYS
    .between(date1, date2);
Period period = Period.between(
    date1, date2);
Duration elapsed = Duration.between(
    time1, time2);
发现此代码有问题? 告诉我们。
🎯

类型安全

Duration 用于时间,Period 用于日期——不会混淆。

📖

自我描述

Duration.ofDays(7) 比 7 * 24 * 60 * 60 * 1000L 更清晰。

🔒

不可变

时间量是值类型——不能意外修改。

旧方式
毫秒数学
现代方式
Duration / Period
自 JDK
8
难度
入门
Duration 和 Period
可用

自 JDK 8 起广泛可用(2014 年 3 月)

Duration 用于基于时间的量(小时、分钟、秒)。Period 用于日期量(年、月、日)。两者都是不可变的,并且支持算术运算。

分享 𝕏 🦋 in