現在の日付(2016-08-31)と指定された日付(2016-08-31)を比較しようとしています。 私の現在のモバイルデバイスのタイムゾーンは、GMT-08:00太平洋標準時です。GregorianCalendarを使用して日付を比較
自動日付&のデバイスでタイムゾーンを無効にし、タイムゾーンをGMT + 08:00パースに設定すると、method1はtrueを返しますが、method2はfalseを返します。
方法2の結果は、タイムゾーンなしの日付を比較するので、 "2016-08-31"より前の "2016-08-31"は偽です。 method1がtrueを返す理由
public boolean method1() {
try {
GregorianCalendar currentCalendar = new GregorianCalendar();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date endDate = sdf.parse("2016-08-31");
Calendar endCalendar = new GregorianCalendar();
endCalendar.setTime(endDate);
if (endCalendar.before(currentCalendar)) {
return true;
} else {
return false;
}
} catch (ParseException e) {
...
}
}
public boolean method2() {
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date currentDate = sdf.parse(formatter.format(new Date()));
Date endDate = sdf.parse("2016-08-31");
if (endDate.before(currentDate)) {
return true;
} else {
return false;
}
} catch (ParseException e) {
...
}
}
ありがとうございました@Basil Bourque、それは非常に詳細です。 – Huigege