使用joda时间的两个日期之间的差异?

时间:2013-02-28 11:56:28

标签: java jodatime

假设有两个日期A(开始时间)& B(结束时间)。 A& B可以是同一天甚至是不同日子的时间。我的任务是以秒为单位显示差异。我正在使用的日期格式是

Date Format :: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 

例如

start date ::   "2011-11-16T14:09:23.000+00:00"
end date ::     "2011-11-17T05:09:23.000+00:00"            

非常感谢帮助。

2 个答案:

答案 0 :(得分:105)

使用Seconds类:

DateTime now = DateTime.now();
DateTime dateTime = now.plusMinutes(10);
Seconds seconds = Seconds.secondsBetween(now, dateTime);
System.out.println(seconds.getSeconds());

这段代码打印出来600.我认为这就是你所需要的。

作为进一步的建议,请浏览joda-time的文档。它非常好,大多数东西都很容易被发现。

如果您需要帮助解析日期(实际上是在文档中),请查看相关问题,如下所示:

Parsing date with Joda with time zone

答案 1 :(得分:4)

@pcalcao的答案在大多数情况下都是最好的。请注意,秒将四舍五入为整数。

如果您对亚秒精度感兴趣,请减去毫秒:

double seconds = (now.getMillis() - dateTime.getMillis()) / 1000d;