Devi impostare il fuso orario su UTC quando usi DateFormat per analizzare le date della stringa.
In alternativa puoi usare Instant in Java 8.
Ho mostrato entrambi gli esempi.
endDate utilizzando dateFormatter con fuso orario impostato su UTC
startDate usando Instant
Qualcosa come
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");