我正在尝试一个例子:
DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
String date = "03/09/2010"; //30 days from today
Date usefullDate = df.parse(date);
Calendar todaysDatePlus30Days = Calendar.getInstance();
todaysDatePlus30Days.add(Calendar.DAY_OF_YEAR, 30);
System.out.println ("Compared Value: " +
usefullDate.compareTo(todaysDatePlus30Days.getTime()))
打印值为
-1
。为什么不打印 0
?我认为问题在于
todaysDatePlus30Days.getTime()
也带来了实际时间。而 usefullDate
的时间是 00:00:00
。所以下一个问题是我怎样才能得到
date
? 最佳答案
您解析的日期隐式是该日期的午夜。您构建的将是一天中的当前时间。
尝试:
Calendar todayPlus30 = new GregorianCalendar() {{
add(Calendar.DAY_OF_YEAR, 30);
set(Calendar.HOUR_OF_DAY, 0);
set(Calendar.MINUTE, 0);
set(Calendar.SECOND, 0);
set(Calendar.MILLISECOND, 0);
}};
我可能有几个这样的常量是错误的,如果你愿意,你可以用 Calendar.newInstance() 来做到这一点,尽管语法有点不同。
关于java - 将今天的日期 + 30 天与另一个日期进行比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2217750/