我在Java/Android中进行日期比较方面有些困惑。
DateFormat df = new SimpleDateFormat("dd/MM/yy HH:mm");
Calendar now = Calendar.getInstance();
Calendar c;
c = Calendar.getInstance();
c.set(settings.getInt("year", 0), settings.getInt("month", 0), settings.getInt("day", 0), settings.getInt("hour", 0), settings.getInt("minute", 0));
views.setTextViewText(R.id.textView4, String.valueOf(c.getTime().before(now.getTime())));
views.setTextViewText(R.id.textView2, String.format("%s - %s", df.format(c.getTime()), df.format(now.getTime())));
int timeout = 0;
while( c.getTime().before(now.getTime()) )
{
c.add(Calendar.SECOND, 30);
c.add(Calendar.MINUTE, 12);
c.add(Calendar.HOUR_OF_DAY, 6);
isHigh = 1 - isHigh;
timeout++;
if( timeout >= 400 )
break;
}
views.setTextViewText(R.id.textView5, String.valueOf(c.getTime().before(now.getTime())));
views.setTextViewText(R.id.textView3, String.format("%s - %s", df.format(c.getTime()), df.format(now.getTime())));
这是一个从保存的设置中获取起始日期的想法,然后将6:12:30添加到时钟中,直到它超过当前时间。
然而,我的文本框给出了以下信息:
false: 09/07/12 04:20 - 11/08/12 00:00 false: 09/07/12 04:20 - 11/08/12 00:00
为什么调用“before(11th Aug 2012)”时,2012年7月9日会返回false?
如果我将“.before”更改为“.after”,我会得到这个:
true: 09/07/12 04:20 - 11/08/12 00:00 true: 20/10/12 15:40 - 11/08/12 00:00
这似乎毫无意义。你有什么想法?谢谢。