我不明白我做错了什么,我一定错过了什么。
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
由于
--- EDIT
确定找到了,问题是通过在句点构造函数中指定“PeriodType.millis()”我得到了这样的句点:0min 0秒152150 ms 我不知道我是否清楚但这是我的错误,我删除了这个论点,现在它就像一个魅力。
Period period = new Period(startDate.getMillis(), DateTime.now().getMillis());
答案 0 :(得分:0)
Period类具有以下Contructor:
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());
答案 1 :(得分:0)
它打印出一个空字符串是一种奇怪的行为,但这是因为你要求它打印输出的类型为毫秒,但你没有在格式化程序定义中包含.appendMillis()。
应该是这样的:
private PeriodFormatter fmt = new PeriodFormatterBuilder()
.printZeroAlways()
.appendHours()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendMinutes()
.appendSeparator(":")
.minimumPrintedDigits(2)
.appendSeconds()
.appendSeparator(".")
.appendMillis()
.toFormatter();
答案 2 :(得分:0)
问题在于通过指定" PeriodType.millis()"在句号构造函数中,我得到了这样一段时间:0分0秒152150毫秒我不知道我是否清楚但这是我的错误,我删除了这个论点,现在它就像一个魅力。
Period period = new Period(startDate.getMillis(),DateTime.now().getMillis());