我正在创建java桌面应用程序。在该应用程序中,用户提供一些日期输入所以我使用3party库“jCalendar.jar”。为验证我想减去两个日期。有没有办法在java中减去两个日期?
答案 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.Dates
,javaDate1
和javaDate2
:
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()方法设置日期。最后使用这个类的方法。