我變得有點粘在Java/Android的Calendar.before()和Calendar.after()返回不正確的值
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添加到時鐘,直到它超過當前時間。
然而,我的文本框給我下面的:
假:09/07/12 04:20 - 12年11月8日00:00
錯誤:09/07/12 04 :20 - 11/08/12 00:00
2012年7月9日爲什麼在2012年8月11日之前打電話時返回虛假?
如果我改變了 「之前」 到 「經過」,我得到這個:
真:09/07/12 04:20 - 12年11月8日00:00
true:20/10/12 15:40 - 11/08/12 00:00
這似乎沒有任何意義。
任何想法我做錯了什麼?謝謝
嘗試對兩個日期進行logCat,然後再比較它們併發布結果。 – iTurki 2012-08-11 19:42:12