У меня есть метка времени в другом формате, например:
2018-07-21T00:50:39
2017-11-20T23:18:27.529Z
Мне нужно разобрать их в java.util.Date, и я попробовал следующий подход, они оба работали для первого формата, но потерпели неудачу во втором.
Вот методы, которые я пробовал, и это ошибка:
1.
private Date try3(String dateString) {
return Date.from(Instant.parse(dateString).atZone(ZoneId.of("UTC")).toInstant());
}
не удалось в первом формате, ошибка:
java.time.format.DateTimeParseException: Text '2017-11-20T23:18:28' could not be parsed at index 19
2.
private Date try2(String dateString) {
return Date.from(LocalDateTime.parse(dateString).atZone(ZoneId.of("UTC")).toInstant());
}
для второго формата, этот метод выдает ошибку:
java.time.format.DateTimeParseException: Text '2017-11-20T23:18:27.529Z' could not be parsed, unparsed text found at index 23
3
private Date try1(String dateString) {
return Date.from(ZonedDateTime.parse(dateString,
DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss").withZone(ZoneId.of("UTC"))).toInstant());
}
для второго формата, вышеприведенный метод выдает ошибку:
java.time.format.DateTimeParseException: Text '2017-11-20T23:18:27.529Z' could not be parsed, unparsed text found at index 19
В итоге я получил библиотеку Joda :
private Date try4(String dateString) {
return new DateTime(dateString).withZone(DateTimeZone.UTC).toDate();
}
Но есть ли способ сделать это в библиотеке времени Java?