Se stai usando Java 7 o precedenti puoi fare riferimento a questo post.
Se stai usando Java 8 potresti fare:
DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
TemporalAccessor accessor = timeFormatter.parse("2015-10-27T16:22:27.605-07:00");
Date date = Date.from(Instant.from(accessor));
System.out.println(date);
Aggiorna
Come sottolineato da @BasilBourque nel commento, TemporalAccessor è un'interfaccia a livello di framework java, non è consigliabile utilizzarla nel codice dell'applicazione ed è consigliabile utilizzare classi concrete piuttosto che le interfacce.
Questa interfaccia è un'interfaccia a livello di framework che non dovrebbe essere ampiamente utilizzata nel codice dell'applicazione. Al contrario, le applicazioni dovrebbero creare e trasferire istanze di tipi concreti, come LocalDate. Ci sono molte ragioni per questo, parte delle quali è che le implementazioni di questa interfaccia potrebbero trovarsi in sistemi di calendario diversi da ISO. Vedi ChronoLocalDate per una discussione più completa dei problemi.
Sono disponibili alcune classi concrete da utilizzare, come LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime e così via.
DateTimeFormatter timeFormatter = DateTimeFormatter.ISO_DATE_TIME;
OffsetDateTime offsetDateTime = OffsetDateTime.parse("2015-10-27T16:22:27.605-07:00", timeFormatter);
Date date = Date.from(Instant.from(offsetDateTime));
System.out.println(date);