Недопустимый шаблонный символ 'T' при анализе строки даты в java.util.Date
Разбор строки даты в java.util. Для объекта даты требуется шаблон, соответствующий определенным правилам. Одним из распространенных шаблонов является «гггг-ММ-ддТчч:мм:ссZ», который представляет даты в формате ISO 8601.
Проблема:
При использовании указанного шаблона возникает исключение выдается сообщение «java.lang.IllegalArgumentException: недопустимый символ шаблона». 'T'."
Причина:
Таблица "T" в шаблоне представляет собой разделитель между компонентами даты и времени. Однако в Java SimpleDateFormat символ «T» необходимо экранировать одинарными кавычками с обеих сторон, чтобы он был правильно распознан.
Решение 1. Экранируйте «T» в шаблоне
Чтобы решить проблему с использованием исходного шаблона, экранируйте символ «T» следующим образом:
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
Решение 2. Используйте ISO_8601_24H_FULL_FORMAT
В качестве альтернативы вы можете использовать предопределенную константу ISO_8601_24H_FULL_FORMAT, предоставляемую Q2597083 class:
String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
Для Java 8 и выше:
Для Java 8 и выше рекомендуется использовать класс DateTimeFormatter вместо SimpleDateFormat и Instant вместо Date. Вот пример:
import java.time.Instant; import java.time.format.DateTimeFormatter; String dateString = "2010-10-02T12:23:23Z"; DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME; Instant d = Instant.parse(dateString); System.out.println(d.getYear());
Используя эти решения, вы можете успешно анализировать строки даты в формате ISO 8601, не сталкиваясь с исключением «Недопустимый символ шаблона 'T'».
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3