我想花两次(自纪元以来的秒数)并以如下格式显示两者之间的差异:
- 2 分钟
- 1 小时 15 分钟
- 3 小时 9 分钟
- 1 分钟前
- 1 小时 2 分钟前
我怎样才能做到这一点??
最佳答案
既然大家都喊“YOODAA!!!”但是没有人发布一个具体的例子,这是我的贡献。
您也可以使用 Joda-Time 来执行此操作.使用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()
.appendYears().appendSuffix(" year, ", " years, ")
.appendMonths().appendSuffix(" month, ", " months, ")
.appendWeeks().appendSuffix(" week, ", " weeks, ")
.appendDays().appendSuffix(" day, ", " days, ")
.appendHours().appendSuffix(" hour, ", " hours, ")
.appendMinutes().appendSuffix(" minute, ", " minutes, ")
.appendSeconds().appendSuffix(" second", " seconds")
.printZeroNever()
.toFormatter();
String elapsed = formatter.print(period);
System.out.println(elapsed + " ago");
更加清晰简洁,不是吗?
现在打印出来了
32 years, 1 month, 1 week, 5 days, 6 hours, 56 minutes, 24 seconds ago
(咳,老,咳)
关于java - 如何在 Java 中计算时间跨度并格式化输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/635935/