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

Ank*_*wal 43 java jodatime

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

Date Format :: "yyyy-MM-dd'T'HH:mm:ss.SSSZ" 
Run Code Online (Sandbox Code Playgroud)

例如

start date ::   "2011-11-16T14:09:23.000+00:00"
end date ::     "2011-11-17T05:09:23.000+00:00"            
Run Code Online (Sandbox Code Playgroud)

感谢帮助.

pca*_*cao 107

使用Seconds课程:

DateTime now = DateTime.now();
DateTime dateTime = now.plusMinutes(10);
Seconds seconds = Seconds.secondsBetween(now, dateTime);
System.out.println(seconds.getSeconds());
Run Code Online (Sandbox Code Playgroud)

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

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

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

用Joda和时区解析约会

  • 如果你正在寻找差异(作为正数),请确保采用`secondsBetween`的绝对值,否则,如果参数被反转,你可能得到一个负数(例如,如果你调用`Seconds.secondsBetween(dateTime) ,现在)`. (11认同)

lin*_*nqu 7

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

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

double seconds = (now.getMillis() - dateTime.getMillis()) / 1000d;
Run Code Online (Sandbox Code Playgroud)