java中的日期减法

时间:2012-08-14 14:39:30

标签: java date

  

可能重复:
  How do you subtract Dates in Java?

我正在创建java桌面应用程序。在该应用程序中,用户提供一些日期输入所以我使用3party库“jCalendar.jar”。为验证我想减去两个日期。有没有办法在java中减去两个日期?

4 个答案:

答案 0 :(得分:4)

Java没有给出太多,你可以看看开源:试试JODA

DateTime dt1 = new DateTime(2000, 1, 1, 0, 0, 0, 0);
DateTime dt2 = new DateTime(2010, 1, 1, 0, 0, 0, 0);
int noOfdays = Days.daysBetween(dt1, dt2).getDays();

答案 1 :(得分:2)

我建议您查看Joda Time,这是Java中日期处理的事实标准。给定两个java.util.DatesjavaDate1javaDate2

DateTime d1 = new DateTime(javaDate1);
DateTime d2 = new DateTime(javaDate2);

Period diff = new Period(d1, d2);

您现在可以查询diff对象的差异,将其拆分为组成部分(年,月,日等)。有关详细信息,请参阅Joda Time period guide

答案 2 :(得分:2)

如果您使用的是Java Date或Java Calendar,那么可以使用以下内容:

Calendar firstOperand = new GregorianCalendar();
Calendar secondOperand = new GregorianCalendar();
Calendar result = new GregorianCalendar();

result.setTimeInMillis(firstOperand.getTimeInMillis() - secondOperand.getTimeInMillis());

编辑: 正如评论中所指出的,将结果存储在日历中没有多大意义。您仍然可以使用为操作返回的毫秒数。

如果可能,您还可以使用库来处理此问题,例如JODA

它允许您从两个日期和更多内容之间获取seconds / minutes / days / months / etc的数量。

答案 3 :(得分:0)

您可以使用java.util.GregorianCalendar

创建此类的实例,然后调用setTime()方法设置日期。最后使用这个类的方法。