Hvis du bruger Java 7 eller tidligere, kan du henvise til dette indlæg.
Hvis du bruger Java 8, kan du gøre:
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);
Opdater
Som påpeget af @BasilBourque i kommentaren, er TemporalAccessor en grænseflade på java framework-niveau, og det er ikke tilrådeligt at bruge i applikationskoden, og det er tilrådeligt at bruge konkrete klasser i stedet for grænseflader.
Denne grænseflade er en grænseflade på rammeniveau, der ikke bør bruges i vid udstrækning i applikationskode. I stedet bør applikationer oprette og videregive forekomster af konkrete typer, såsom LocalDate. Der er mange grunde til dette, hvoraf en del er, at implementeringer af denne grænseflade kan være i andre kalendersystemer end ISO. Se ChronoLocalDate for en mere udførlig diskussion af problemerne.
Der er et par konkrete klasser tilgængelige at bruge, såsom LocalDate, LocalDateTime, OffsetDateTime, ZonedDateTime og etc..
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);