我有两个字符串列表,其中包含以下特定格式的日期;
让我们说;
List1<String>=[2016-12-03T16:18:02.000Z, 2016-12-02T16:18:02.000Z, 2016-12-01T16:18:02.000Z]
List2<String>=[2016-12-03T17:34:49.000Z, 2016-11-21T17:34:50.000Z, 2016-11-21T17:34:49.000Z, 2016-12-02T17:34:50.000Z, 2016-11-21T17:34:49.000Z, 2016-11-21T17:34:50.000]
我实际上想要比较这两个列表,条件是"2016-12-03T16:18:02.000Z"
中的List1
和"2016-12-03T17:34:49.000Z"
中的List2
实际上属于同一天,即他们应该匹配并递增计数。我已经通过将两个列表的格式更改为"yyyy-MM-dd"
来实现它,但是可以在不更改日期格式的情况下比较它们吗?
我所做的代码是:
static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
public static List<String> getLocalDatesFinalListAsString(List<Date> localDateListAsDate){
System.out.println("-----Formatted Past Three Days-----");
for (Date date : localDateListAsDate) {
int hoursToSubtract = -5;
int minutesToSubtract = -45;
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.HOUR, hoursToSubtract);
calendar.add(Calendar.MINUTE, minutesToSubtract);
String dateLocal = sdf.format(calendar.getTime());
localDateFinalList.add(dateLocal);
}
System.out.println(localDateFinalList.size());
return localDateFinalList;
}
public static List<String> getJsonDatesFinalListAsString(List<Date> jsonDatesListAsDate){
for (Date date : jsonDatesListAsDate) {
String dateJson=sdf.format(date);
jsonDateFinalList.add(dateJson);
}
System.out.println(jsonDateFinalList.size());
return jsonDateFinalList;
}
public static void main(String[] args) throws ParseException {
int count=0;
List<String> stringListOfPastThreeDates = getLocalDatesFinalListAsString(dateListOfPastThreeDates);
List<String> stringListOfJsonDates = getJsonDatesFinalListAsString(dateListOfJsonDates);
for (String localDate : stringListOfPastThreeDates) {
if (stringListOfJsonDates.contains(localDate)) {
count++;
System.out.println("Falls on the same day");
}
}
}
但是对于要比较的列表,如果它们在两个列表中只有相同的值,则计数值会增加。