0

可能重复:
如何在 Java 中减去日期?

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

4

4 回答 4

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();
于 2012-08-14T14:43:27.317 回答
2

我建议看一下Joda Time,它是 Java 中日期处理的事实标准。给定两个java.util.Dates,javaDate1javaDate2:

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

Period diff = new Period(d1, d2);

您现在可以查询diff对象的差异,拆分为它的组成部分(年、月、日等)。有关更多信息,请参阅 Joda 时间段指南

于 2012-08-14T14:42:44.153 回答
2

如果您使用的是 Java 日期或 Java 日历,那么您可以使用以下内容:

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

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

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

如果可能的话,您还可以使用库来处理这个问题,比如JODA

它允许您从两个日期和更多事物之间获取秒数/分钟数/天数/月数/等。

于 2012-08-14T14:47:59.043 回答
0

您可以使用java.util.GregorianCalendar

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

于 2012-08-14T14:44:27.403 回答