我不明白我做错了什么,我一定是漏掉了什么。
private PeriodFormatter fmt = new PeriodFormatterBuilder()
.printZeroNever()
.appendHours()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendMinutes()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendSeconds()
.toFormatter();然后
Period period = new Period(DateTime.now().getMillis()-startDate.getMillis(), PeriodType.millis());
Log.i("date", "fmt.print(period): " + fmt.print(period));
Log.i("date", "period.toString() : " + period.toString());
Log.i("date", "DateTime.now().getMillis()-startDate.getMillis() : " + (DateTime.now().getMillis()-startDate.getMillis()));我的日志是
fmt.print(period):
period.toString() : PT12.166S
DateTime.now().getMillis()-startDate.getMillis() : 12166谢谢
-编辑
找到了,问题是,通过在period构造函数中指定“PeriodType.millis()”,我以这种方式获得了period :0分0秒152150毫秒我不知道我是否清楚,但这是我的错误,我删除了这个参数,现在它就像一个护身符一样工作。
Period period = new Period(startDate.getMillis(), DateTime.now().getMillis());发布于 2016-01-11 22:28:56
Period类具有以下构造器:
Period(long startInstant, long endInstant, PeriodType type)尝试更改:
Period period = new Period(DateTime.now().getMillis()-startDate.getMillis(), PeriodType.millis());至:
Period period = new Period(DateTime.now().getMillis(), startDate.getMillis(), PeriodType.millis());发布于 2016-01-12 00:24:36
它打印出一个空字符串是相当奇怪的行为,但这是因为您要求它打印毫秒类型,但是您的格式化程序定义中没有包括.appendMillis()。
它应该是这样的:
private PeriodFormatter fmt = new PeriodFormatterBuilder()
.printZeroAlways()
.appendHours()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendMinutes()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendSeconds()
.appendSeparator(".")
.appendMillis()
.toFormatter();发布于 2016-01-12 17:40:15
问题是,通过在period构造函数中指定“PeriodType.millis()”,我以这种方式获得了period : 152150分0秒152150毫秒我不知道我是否清楚,但这是我的错误,我删除了这个参数,现在它就像一个护身符一样工作。
Period period = new Period(startDate.getMillis(),DateTime.now().getMillis());https://stackoverflow.com/questions/34723498
复制相似问题