JSON ファイルから日付を取得していますが、これは文字列形式です。意図から currentActivity に送られる startdate と enddate という名前の日付の 2 つの文字列値があります。今、jsonファイルからの日付値が開始日より後か終了日より前かを確認したいと思います。これどうやってするの?はい、私が持っているjsonファイルの形式は「yyyy-mm-dd」です。
JSON データは次のようになります。
{"posts":[{"start_date":"2013-02-15","end_date":"2013-02-21"}]}
これが私が試したコードですが、Mon Jan 07 00:00:00 GMT+5:30 2013として出力されています:
Intent intent = getIntent();
String startDate = intent.getStringExtra("startDate"); //I have check this. It is proper.
String endDate = intent.getStringExtra("endDate"); //I have check this. It is proper.
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date start = null,end = null;
try {
start = sdf.parse(startDate);
end = sdf.parse(endDate);
} catch (ParseException e1) {
e1.printStackTrace();
}
日付を比較するコードは次のとおりです。
Date date = null;
try {
date = sdf.parse(c.getString(TAG_DATE)); //I am getting the date from a json file here.
} catch (ParseException e) {
e.printStackTrace();
}
Date currDate = new Date();
if (end.compareTo(currDate) < 0 || start.compareTo(currDate) < 0) {
Toast.makeText(getApplicationContext(),"Please select valid dates...",Toast.LENGTH_SHORT).show();
} else if (end.compareTo(currDate) == 0 && start.compareTo(currDate) >= 0){
if (date.after(start)) {
Toast.makeText(getApplicationContext(), "After...",Toast.LENGTH_SHORT).show();
}
} else if (end.compareTo(currDate) > 0 && start.compareTo(currDate) >= 0) {
if (date.after(start) && date.before(end)) {
Toast.makeText(getApplicationContext(),"Before...",Toast.LENGTH_SHORT).show();
}
}