Você precisa definir o fuso horário para UTC ao usar
DateFormat para analisar datas de strings. Alternativamente, você pode usar
Instant em Java8. Mostrei os dois exemplos.
endDate usando dateFormatter com fuso horário definido como UTC startDate usando Instant Algo como
DateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS\'Z\'");
dateFormatter.setTimeZone(TimeZone.getTimeZone("UTC"));
Date startDate,endDate;
startDate = Date.from(Instant.parse("2017-10-06T00:00:00.000Z"));
endDate = dateFormatter.parse("2017-10-07T23:00:00.000Z");