API даты Java8 — выведите 20240230 как 20240230 вместо 28 февраля 2024 г. ⇐ JAVA
API даты Java8 — выведите 20240230 как 20240230 вместо 28 февраля 2024 г.
String valueDate(String valueDate_yyyyMMdd) {
final DateTimeFormatter DATE_FORMATTER_YYYYMMDD = DateTimeFormatter.ofPattern("yyyyMMdd")
try {
final LocalDate valueDate = LocalDate.parse(StringUtils.trim(valueDate_yyyyMMdd), DATE_FORMATTER_YYYYMMDD);
return DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH).format(valueDate);
} catch (Exception e) {
log.warn("failed to convert {} into ddMMMyyyy format", valueDate_yyyyMMdd, e);
return valueDate_yyyyMMdd;
}
}
Например, когда я ввожу неверную дату, я надеюсь, что метод сможет вернуть введенное мной значение вместо того, чтобы изменить его на действительную дату.
Например, если в приведенном выше методе я передам ему 20240230, результатом будет 28 февраля 2024. Число «28» неожиданное. Что ожидается? Поскольку 20240230 является недопустимой датой, при его анализе должно быть выдано исключение, а затем выполняется команда catch, поэтому, наконец, входные данные возвращаются.
Я просмотрел этот документ Java 8 LocalDateTime анализирует неверную дату и время и улучшает мой код:
String valueDate(String valueDate_yyyyMMdd) {
try {
DateTimeFormatter DATE_FORMATTER_YYYYMMDD = DateTimeFormatter
.ofPattern("yyyyMMdd", Locale.US)
.withResolverStyle(ResolverStyle.STRICT);
final LocalDate valueDate = LocalDate.parse(StringUtils.trim(valueDate_yyyyMMdd), DATE_FORMATTER_YYYYMMDD);
return DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH).format(valueDate);
} catch (Exception e) {
log.warn("failed to convert {} into ddMMMyyyy format", valueDate_yyyyMMdd, e);
return valueDate_yyyyMMdd;
}
}
Но на этот раз он не может обработать 20230101. Выдается исключение:
java.time.format.DateTimeParseException: Text '20230101' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {YearOfEra=2023, DayOfMonth=1, MonthOfYear=1},ISO of type java.time.format.Parsed
Подробнее здесь: https://stackoverflow.com/questions/789 ... 8-feb-2024
String valueDate(String valueDate_yyyyMMdd) {
final DateTimeFormatter DATE_FORMATTER_YYYYMMDD = DateTimeFormatter.ofPattern("yyyyMMdd")
try {
final LocalDate valueDate = LocalDate.parse(StringUtils.trim(valueDate_yyyyMMdd), DATE_FORMATTER_YYYYMMDD);
return DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH).format(valueDate);
} catch (Exception e) {
log.warn("failed to convert {} into ddMMMyyyy format", valueDate_yyyyMMdd, e);
return valueDate_yyyyMMdd;
}
}
Например, когда я ввожу неверную дату, я надеюсь, что метод сможет вернуть введенное мной значение вместо того, чтобы изменить его на действительную дату.
Например, если в приведенном выше методе я передам ему 20240230, результатом будет 28 февраля 2024. Число «28» неожиданное. Что ожидается? Поскольку 20240230 является недопустимой датой, при его анализе должно быть выдано исключение, а затем выполняется команда catch, поэтому, наконец, входные данные возвращаются.
Я просмотрел этот документ Java 8 LocalDateTime анализирует неверную дату и время и улучшает мой код:
String valueDate(String valueDate_yyyyMMdd) {
try {
DateTimeFormatter DATE_FORMATTER_YYYYMMDD = DateTimeFormatter
.ofPattern("yyyyMMdd", Locale.US)
.withResolverStyle(ResolverStyle.STRICT);
final LocalDate valueDate = LocalDate.parse(StringUtils.trim(valueDate_yyyyMMdd), DATE_FORMATTER_YYYYMMDD);
return DateTimeFormatter.ofPattern("dd-MMM-yyyy", Locale.ENGLISH).format(valueDate);
} catch (Exception e) {
log.warn("failed to convert {} into ddMMMyyyy format", valueDate_yyyyMMdd, e);
return valueDate_yyyyMMdd;
}
}
Но на этот раз он не может обработать 20230101. Выдается исключение:
java.time.format.DateTimeParseException: Text '20230101' could not be parsed: Unable to obtain LocalDate from TemporalAccessor: {YearOfEra=2023, DayOfMonth=1, MonthOfYear=1},ISO of type java.time.format.Parsed
Подробнее здесь: https://stackoverflow.com/questions/789 ... 8-feb-2024
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
API даты Java8 — выведите 20240230 как 20240230 вместо 28 февраля 2024 г.
Anonymous » » в форуме JAVA - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
API даты Java8 - вывести 20240230 как 20240230 вместо 28 февраля 2024 г. [закрыто]
Anonymous » » в форуме JAVA - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-