我很难理解这里发生了什么......我正在尝试将时间跨度转换为字符串(即“2年,6天,4小时,23秒”)。
我得到的数字样本如下:
开始:1309605480723结束:1341227880000
开始时间:2011年7月2日上午4:18:00
结束:2012年7月2日上午4:18:00
span.toString:PT8783H59M59.277S
formatter.print(span):0年,0个月,1天,23小时,59分钟,59秒
span.toString(formatter):0年,0个月,1天,23小时,59分钟,59秒
产生上述代码的代码是:
Period span = new Period(mEndTime - mStartTime);
PeriodFormatter formatter = new PeriodFormatterBuilder()
.printZeroAlways()
.appendYears().appendSuffix(" year", " years").appendSeparator(", ")
.appendMonths().appendSuffix(" month", " months").appendSeparator(", ")
.appendDays().appendSuffix(" day", " days").appendSeparator(", ")
.appendHours().appendSuffix(" hour", " hours").appendSeparator(", ")
.appendMinutes().appendSuffix(" minute", " minutes").appendSeparator(", ")
.appendSeconds().appendSuffix(" second", " seconds")
.toFormatter();
Log.d(LOGTAG, "formatter.print: " + formatter.print(span.normalizedStandard()));
Log.d(LOGTAG, "span.toString: " + span.normalizedStandard().toString(formatter));
任何人都可以解释这些数字吗?
也许我正在做一些愚蠢的事情,看不到它(现在是凌晨4点),但我只是看不出为什么这些8783小时甚至无法升级到几天?
感谢。
答案 0 :(得分:2)
救援文件! :)
org.joda.time.Period.Period(持续时间很长)
使用标准字段集从给定的毫秒持续时间创建一个句点。
仅使用句点类型中的精确字段。对于标准期间类型,这仅是时间字段。因此,年,月,周和日字段将不会填充。
尝试:
Period span = new Period(mStartTime, mEndTime);