Ако използвате Java 7 или по-стара версия, можете да се обърнете към тази публикация.
Ако използвате Java 8, можете да направите:
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);
Актуализиране
Както бе посочено от @BasilBourque в коментара, TemporalAccessor е интерфейс на ниво java рамка и не е препоръчително да се използва в кода на приложението и е препоръчително да се използват конкретни класове, а не интерфейсите.
Този интерфейс е интерфейс на ниво рамка, който не трябва да се използва широко в кода на приложението. Вместо това приложенията трябва да създават и предават екземпляри от конкретни типове, като LocalDate. Има много причини за това, част от които е, че реализациите на този интерфейс може да са в календарни системи, различни от ISO. Вижте ChronoLocalDate за по-пълно обсъждане на проблемите.
Има няколко конкретни класа, които можете да използвате, като LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime и др.
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);