【发布时间】:2015-01-26 11:00:47
【问题描述】:
我在 Android Studio 项目中使用 joda-time-2.5。
我无法弄清楚我错过了什么才能正确格式化带有年份和/或月份的字符串。
期间计算正确 - 但不会超过“周”,例如。 1000000 分钟的格式正确为“99 周,1 天,10 小时 + 40 分钟”。但不是月/年格式,例如。 “1 年、10 个月、3 周、1 天、10 小时 + 40 分钟”等
我尝试过各种变体
Period pA = new Period(mA);
Period pA = new Period(mA, PeriodType.standard());
Period pA = new Period(mA, PeriodType.yearMonthDay());
等等,但这些没有任何区别。
我尝试添加/删除各种.appends/years/months/printZero - 这没有任何区别。
我已尝试更改周期单位:如果我使用月或年,它将起作用,例如
Months mA = Months.months(15);
Period pA = new Period(mA, PeriodType.standard());
正确生成“1year, 3months”。
我知道“年”和“月”并不精确(在这种情况下,近似值实际上可以),但我认为这就是 PeriodTypes/yearMonthDay 或标准所处理的?
我也试过PeriodFormat.getDefault().print(period),但没有成功。
请在下面找到代码:
private String formatTimeStr(int minutes){
Minutes mA = Minutes.minutes(minutes);
Period pA = new Period(mA);
PeriodFormatter dhm = new PeriodFormatterBuilder()
.printZeroNever()
.appendYears()
.appendSuffix("year","years")
.appendSeparator(", ")
.appendMonths()
.appendSuffix("mnth", "mnths")
.appendSeparator(", ")
.appendWeeks()
.appendSuffix("wk", "wks")
.appendSeparator(", ")
.appendDays()
.appendSuffix("day", "days")
.appendSeparator(", ")
.appendHours()
.appendSuffix("hr", "hrs")
.appendSeparator(" & ")
.appendMinutes()
.appendSuffix("min", "mins")
.toFormatter();
String formattedTimeStr = dhm.print(pA.normalizedStandard());
return formattedTimeStr;
}
【问题讨论】:
-
您需要一个参考时间戳来添加分钟输入。然后你得到两个时间戳作为计算
Period的基础,然后你应该能够将分钟转换为混合月份、日期等。
标签: java jodatime periodformatter