我有两个Joda LocalDateTime
对象,需要产生一个第三个对象,表示它们之间的差异:
LocalDateTime start = getStartLocalDateTime();
LocalDateTime end = getEndLocalDateTime();
LocalDateTime diff = ???
我唯一能想到的方法是费力地逐个处理每个日期/时间字段,并执行其相应的 减法
操作。LocalDateTime diff = end;
diff.minusYears(start.getYear());
diff.minusMonths(start.getMonthOfYear());
diff.minusDays(start.getDayOfMonth());
diff.minusHours(start.getHourOfDay());
diff.minusMinutes(start.getMinuteOfHour());
diff.minusSeconds(start.getSecondsOfMinute());
最终结果只需要调用diff
的toString()
方法并获得有意义的结果。例如,如果start.toString()
产生2012/02/08T15:05:00,而end.toString()
产生2012/02/08T16:00:00,则diff.toString()
将是差异(55分钟),可能看起来像2012/02/08T00:55:00。如果这是对
LocalDateTime
的糟糕滥用,那么我只需要知道如何计算两者之间的时间差并将该差异转化为易于阅读(人类友好)的格式。提前致谢!
Period
和Duration
听起来相似,但实际上有很大的区别。我知道它们的用途,但并不总是直观易懂。 - Michael Piefel