Java如何使用Joda-Time计算从现在开始经过的时间?

我需要计算从一个特定日期到现在的时间,并以与StackOverflow问题相同的格式显示它,即:

15s ago

2min 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 ago

51 minutes ago

7 hours ago

6 days ago

10 months ago

31 years ago

你会发现我也考虑了几个月和几年,并将其配置为在零值时忽略这些值。

以上是 Java如何使用Joda-Time计算从现在开始经过的时间? 的全部内容, 来源链接: utcz.com/qa/410476.html

回到顶部