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