我有一个很奇怪的问题。我正在使用joda时间来返回两个包含完整分钟的时间段之间的时差。也就是说,秒始终为零。由于某种原因,joda时间有时会返回59秒,时差为1分钟。有人知道为什么吗?

时间差的计算:

Period rowTime = new Period ( mTask.getTimestamps ().get ( i - 2 ), mTask.getTimestamps ().get ( i - 1 ) );


时间:

String hour = Integer.toString ( rowTime.getHours () );
            String minute = Integer.toString ( rowTime.getMinutes () );
            String second = Integer.toString ( rowTime.getSeconds () );


测试代码:

LocalDateTime start = mTask.getTimestamps ().get ( i - 2 );
            LocalDateTime end = mTask.getTimestamps ().get ( i - 1 );

            int startMinute = start.getMinuteOfHour ();
            int startSecond = start.getSecondOfMinute ();

            int endMinute = end.getMinuteOfHour ();
            int endSecond = end.getSecondOfMinute ();

            tvRowTime.setText ( startMinute + ":" + startSecond + " > " + endMinute + ":" + endSecond + " > " + hour + ":" + minute + ":"
                    + second );


确实,测试代码清楚地表明,开始/结束时间(m:s)1:0/2:0可以得出0:0:59。即,差异显然恰好是1分钟,但joda时间有时会返回59秒。

最佳答案

解:

我是个白痴。我忘记了乔达的时间是毫秒。休息时间...

10-06 11:19