Я пытаюсь разобрать строки, совместимые с ISO8601, которые указывают дату только до определенного момента, например 2018-02
для февраля 2018 года, пропуская день.
Пакет java.time
, похоже, не может анализировать такие строки. Я пробовал следующее:
Instant.parse("2018-02");
LocalDateTime.parse("2018-02")
LocalDate.parse("2018-02", DateTimeFormatter.ISO_DATE);
которые терпят неудачу со следующей ошибкой
DateTimeParseException: текст '2018-02' не удалось проанализировать в индексе 7
Я также пробовал следующее, хотя на самом деле я не хочу указывать точный шаблон и просто принимаю все, что соответствует ISO8601:
LocalDate.parse("2018-02", DateTimeFormatter.ofPattern("yyyy-MM"));
что не работает с:
java.time.format.DateTimeParseException: текст '2018-02' не может быть проанализирован: невозможно получить LocalDate от TemporalAccessor: {MonthOfYear = 2, Year = 2018}, ISO типа java.time.format.Parsed
Есть ли способ проанализировать такие строки ISO8601 с помощью пакета java.time
?
2018-02
,2018-02-15
,2018-02-15T12
и т. Д.? - person Ole V.V.   schedule 15.02.2018yyyy-MM
, но я бы хотел, чтобы я мог сделать его надежным, приняв любую дату ISO8601, включаяyyyy-MM-dd
и временные части. - person Felk   schedule 15.02.2018