java中的日期减法
可能重复:java中的日期减法,java,date,Java,Date,可能重复: 我正在创建java桌面应用程序。在该应用程序中,用户提供一些日期输入。所以我使用3party库“jCalendar.jar”。为了验证,我想减去两个日期。在java中有没有办法减去两个日期?我建议看一看java中日期处理的事实标准。给定两个java.util.Dates,javaDate1和javaDate2: DateTime d1 = new DateTime(javaDate1); DateTime d2 = new DateTime(javaDate2); Period
我正在创建java桌面应用程序。在该应用程序中,用户提供一些日期输入。所以我使用3party库“jCalendar.jar”。为了验证,我想减去两个日期。在java中有没有办法减去两个日期?我建议看一看java中日期处理的事实标准。给定两个
java.util.Dates
,javaDate1
和javaDate2
:
DateTime d1 = new DateTime(javaDate1);
DateTime d2 = new DateTime(javaDate2);
Period diff = new Period(d1, d2);
现在,您可以查询
diff
对象中的差异,并将其分解为其组成部分(年、月、日等)。有关更多信息,请参阅Joda Time。Java提供的信息不多,您可以查看开源:试试
你可以用
创建此类的实例,然后调用setTime()方法来设置日期。最后使用这个类的方法。如果您使用的是Java日期或Java日历,那么您可以使用如下内容:
Calendar firstOperand = new GregorianCalendar();
Calendar secondOperand = new GregorianCalendar();
Calendar result = new GregorianCalendar();
result.setTimeInMillis(firstOperand.getTimeInMillis() - secondOperand.getTimeInMillis());
编辑:
正如评论中指出的,将结果存储在日历中没有多大意义。您仍然可以使用为操作返回的毫秒数
如果可能,您也可以使用库来处理此问题,如
它允许您从两个日期之间获取///的数量和更多信息。您应该查看JodaTime:还有这个问题:这有点奇怪。假设我从2012年8月13日15:41减去2012年8月5日12:34,并将结果放入
日历中。您希望日历设置在什么日期?减去两个日期的结果是一个时间量,而不是一个瞬间<代码>日历
不适合保存一定的时间。你是对的,秒虽然有点奇怪,但这是我当时的想法,他仍然可以以不同的方式使用毫秒,而不是在日历上设置。这有助于我的工作。谢谢
Calendar firstOperand = new GregorianCalendar();
Calendar secondOperand = new GregorianCalendar();
Calendar result = new GregorianCalendar();
result.setTimeInMillis(firstOperand.getTimeInMillis() - secondOperand.getTimeInMillis());