简介
专门处理日期时间的库。
Joda-Time的作者Stephen Colebourne和Oracle一起共同参与了Java 8中的java.time包中提供的API设计和实现。
API
DateTime
- 创建对象
DateTime dateTime = new DateTime(2017, 2, 21, 0, 0);
时间跨度
Duration
- 提供了日、时、分、秒、毫秒几个单位的工厂方法来创建。
- 计算日期之差;
Duration duration=Duration.standardDays(3);
System.out.println(DateTime.now().minus(duration).toString());
Period
- 在Duration基础上增加了年、月、周作为单位。
- 计算日期之差
DateTime dt = new DateTime(2019, 11, 13, 9, 44);
Period period = new Period(dt, new DateTime());
Interval
- 用来表示一对DateTime
- 这个类表示一个特定的时间跨度,将使用一个明确的时刻界定这段时间跨度的范围。
//Interval可以获得两个时间每个单位的时间差
DateTime dt1 = new DateTime(2008, 12, 8, 8, 31);
DateTime dt2 = new DateTime(2017, 2, 21, 17, 21);
Interval interval = new Interval(dt1.getMillis(), dt2.getMillis());
Period p = interval.toPeriod();
System.out.println(p.toString());
PeriodFormatter
- 格式化经过的时间
periodFormatter periodFormatter = new PeriodFormatterBuilder()
.appendSeconds().appendSuffix("s second ago\n")
.appendMinutes().appendSuffix("m minutes ago\n")
.appendHours().appendSuffix("h hours ago\n")
.printZeroNever().toFormatter();
String elapsed = periodFormatter.print(period);