Java如何使用Joda-Time计算从现在开始经过的时间?
我需要计算从一个特定日期到现在的时间,并以与StackOverflow问题相同的格式显示它,即:
15s ago2min ago
2hours ago
2days ago
25th Dec 08
你知道如何使用Java Joda-Time库实现它吗?是否有已经实现它的辅助方法,还是我应该自己编写算法?
回答:
要使用JodaTime
计算经过的时间,请使用Period
。要将经过的时间格式化为所需的人类表示形式,可以使用PeriodFormatter
来构建PeriodFormatterBuilder
。
这是一个启动示例:
DateTime myBirthDate = new DateTime(1978, 3, 26, 12, 35, 0, 0);DateTime now = new DateTime();
Period period = new Period(myBirthDate, now);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendSeconds().appendSuffix(" seconds ago\n")
.appendMinutes().appendSuffix(" minutes ago\n")
.appendHours().appendSuffix(" hours ago\n")
.appendDays().appendSuffix(" days ago\n")
.appendWeeks().appendSuffix(" weeks ago\n")
.appendMonths().appendSuffix(" months ago\n")
.appendYears().appendSuffix(" years ago\n")
.printZeroNever()
.toFormatter();
String elapsed = formatter.print(period);
System.out.println(elapsed);
现在打印
3 seconds ago51 minutes ago
7 hours ago
6 days ago
10 months ago
31 years ago
你会发现我也考虑了几个月和几年,并将其配置为在零值时忽略这些值。
以上是 Java如何使用Joda-Time计算从现在开始经过的时间? 的全部内容, 来源链接: utcz.com/qa/410476.html