«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Почему при анализе строки даты в Java выдается «недопустимый символ шаблона 'T'»?

Почему при анализе строки даты в Java выдается «недопустимый символ шаблона 'T'»?

Опубликовано 23 декабря 2024 г.
Просматривать:438

Why Does Parsing a Date String in Java Throw

Недопустимый шаблонный символ '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