And*_*art 0 java android date period jodatime
所以我有2个日期选择器用于开始和结束时间,它们返回DateTime.
我需要以"小时小时分钟"的格式计算这两次之间的持续时间,例如,"1小时30分钟".如果有天差,它将显示"24小时",因此我们使用小时而不是天.
我遇到的问题是,无论我如何工作,如果用户提前选择一个月,它就会中断.他们永远不应该选择一个月,但可以选择.
我收到此错误:
java.lang.UnsupportedOperationException: Unable to normalize as PeriodType is missing either years or months but period has a month/year amount: P1M3W6DT1H
at org.joda.time.Period.normalizedStandard(Period.java:1640)
Run Code Online (Sandbox Code Playgroud)
我的代码是:
Period durationHoursAndMinutes = new Period(startDate.toLocalDateTime(), endDate.toLocalDateTime()).normalizedStandard(PeriodType.time());
PeriodFormatter formatter = new PeriodFormatterBuilder()
.appendHours()
.appendSuffix(getResources().getString(R.string.mytrips_tripview_rail_waitTime_hr))
.appendSeparator(" ")
.appendMinutes()
.appendSuffix(getResources().getString(R.string.mytrips_tripview_rail_waitTime_min))
.toFormatter();
if(durationHoursAndMinutes.getMinutes() > 0){
return formatter.print(durationHoursAndMinutes);
}else {
return null;
}
Run Code Online (Sandbox Code Playgroud)
我查看了PeriodType的代码,它说如果月份!= 0则抛出异常,它不会.只是想知道我是否有办法解决这个问题.谢谢你的帮助
我怀疑最简单的方法是将其传递PeriodType给构造函数:
new Period(
startDate.toLocalDateTime(),
endDate.toLocalDateTime(),
PeriodType.time());
Run Code Online (Sandbox Code Playgroud)
然后,您不需要执行任何其他规范化.
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |