【发布时间】:2011-07-04 19:58:15
【问题描述】:
我正在使用 Joda 库来获取自给定时间戳以来经过的时间段:
public static String getTimePassedSince(Date initialTimestamp){
DateTime initDT = new DateTime(initialTimestamp.getTime());
DateTime now = new DateTime();
Period p = new Period(initDT, now);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendYears().appendSuffix(" year, ", " years, ")
.appendMonths().appendSuffix(" month, ", " months, ")
.appendDays().appendSuffix(" day, ", " days, ")
.appendHours().appendSuffix(" hour, ", " hours, ")
.appendMinutes().appendSuffix(" minute, ", " minutes, ")
.appendSeconds().appendSuffix(" second, ", " seconds")
.printZeroNever()
.toFormatter();
return formatter.print(p);
}
该函数返回给定时间戳的确切时间段字符串。例如:
3 minutes, 23 seconds
1 hour, 30 minutes, 57 seconds
1 day, 23 hours, 21 minutes, 19 seconds
有什么方法可以让我获得近似时间而不是准确时间?例如,如果距离initialTimestamp 已经过去了 1 分 30 秒,则它只返回 1.5 minutes。同样,如果过去了 1 小时 35 分钟,则返回 about 1.5 hours 而不是 1 小时 35 分钟 xy 秒。
我知道返回的字符串可以被解析和操作,但我正在寻找更复杂的东西。
【问题讨论】: