Carácter de patrón ilegal 'T' al analizar una cadena de fecha en java.util.Date
Analizando una cadena de fecha en java.util. El objeto de fecha requiere un patrón que se adhiera a reglas específicas. Un patrón común es "yyyy-MM-ddThh:mm:ssZ", que representa fechas en formato ISO 8601.
Problema:
Cuando se utiliza el patrón especificado, se produce una excepción. lanzado con el mensaje "java.lang.IllegalArgumentException: carácter de patrón ilegal 'T'."
Motivo:
La 'T' en el patrón representa un separador entre los componentes de fecha y hora. Sin embargo, en SimpleDateFormat de Java, el carácter 'T' debe contener comillas simples en cada lado para que se reconozca correctamente.
Solución 1: escape 'T' en el patrón
Para resolver el problema usando el patrón original, escape el carácter 'T' de la siguiente manera:
String pattern = "yyyy-MM-dd'T'hh:mm:ssZ";
Solución 2: usar ISO_8601_24H_FULL_FORMAT
Como alternativa, puede usar la constante ISO_8601_24H_FULL_FORMAT predefinida proporcionada por Q2597083 clase:
String pattern = Q2597083.ISO_8601_24H_FULL_FORMAT;
Para Java 8 y superior:
Para Java 8 y superior, se recomienda utilizar la clase DateTimeFormatter en lugar de SimpleDateFormat e Instantáneo en lugar de Fecha. Aquí hay un ejemplo:
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());
Al utilizar estas soluciones, puede analizar con éxito cadenas de fechas en formato ISO 8601 sin encontrar la excepción "Carácter de patrón ilegal 'T'".
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3