我想将JSON值(日期)与手机上的数据(当前日期)进行比较。 实际上我的JSON只包含一个月的两个日期,第一个日期和一个月的第16个日期。现在我想显示JSON的最新日期,这个日期离手机日期更近了,即如果日期是1月1日至15日,那么该节目的第一个月是从JSON值获取的,如果它是在16日之后它显示从JSON值开始的那个月的第16个日期。
我可以通过以下方式检查我在吐司上的json值:
if(MY JSON ARRAY.toString().contains(VALUE WHICH I WANT TO COMPARE)){
}
但我不知道如何比较这些值并将其显示给TEXTVIEW
。
这是我的JSON:
{"result":[{"date":"1 October 2017"},{"date":"1 December 2017"},{"date":"16
October 2017"},{"date":"16 December 2017"},{"date":"1 October 2017"},
{"date":"16 October 2017"},{"date":"16 December 2017"},{"date":"01 January
2017"},{"date":"16 December 2017"},{"date":"09 September 2017"}]}
这是我的代码:
// fetch date
String url = ConfigOfDateMatch.DATA_URL;
StringRequest stringRequest = new StringRequest(url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
showJSONdate(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(DemoOfCompareDate.this, error.getMessage().toString(), Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSONdate(String response) {
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(ConfigOfDateMatch.JSON_ARRAY);
for(int i = 0; i < result.length(); i++) {
JSONObject date = result.getJSONObject(i);
//from where I got the current date
String compre = textviewlatestdate1.getText().toString();
if(result.toString().contains(compre)){
Toast.makeText(getApplicationContext(), "Yes there is a date in this Json", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(getApplicationContext(), "NOPE", Toast.LENGTH_SHORT).show();
}
}
} catch (JSONException e) {
e.printStackTrace();
}
这就是我当前约会的时间(MONTH IN ALPHABET):
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd MMMM yyyy");
String currentDateandTime = sdf.format(new Date());
//I set my current date to textview
textviewlatestdate1.setText(currentDateandTime);