比较两个包含日期的字符串列表

时间:2016-12-04 16:44:19

标签: java date time

我有两个字符串列表,其中包含以下特定格式的日期;

让我们说;

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");
        }
    }   
}

但是对于要比较的列表,如果它们在两个列表中只有相同的值,则计数值会增加。

0 个答案:

没有答案