Parse Date String em Java [duplicado]

Esta pergunta já tem uma resposta aqui:

Converting String compatível com ISO 8601 para java.util.Date 25 respostasJava - O formatador SimpleDateFormat retorna o tempo da época em milissegundos [duplicado] respostas

Tenho data no formato "aaaa-MM-dd'T'HH: mm: ss.sssZ". por exemplo, a data é "2018-07-17T09: 59: 51.312Z". Estou usando o código abaixo para analisar a String em Java.

  String date="2018-07-17T09:59:51.312Z";
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.sssZ");
   Date transactionDateTime = simpleDateFormat.parse(date);

Isto está me dando "Data imperceptível:" Exceção. Alguém pode me dizer como fazer isso?

questionAnswers(2)

yourAnswerToTheQuestion