Pregunta

¿Es posible incluir un carácter alfabético en un Patrón de encordado SimpleDateFormat?

Estoy tratando de crear una cadena de formato, donde la letra 'T' se incluye antes de la hora, por ejemplo:

15/11/2003 T 09: 30: 47-05:. 00

Actualmente estoy usando yyyy-MM-ddhh:mm:ssZ como la cadena patrón.

Si lo cambio a yyyy-MM-ddThh:mm:ssZ va a lanzar una excepción como 'A' a 'Z' y 'a' a la 'z' están reservados.

¿Hay alguna solución que no implique el uso de dos DateFormats?

¿Fue útil?

Solución

Alrededor de la T con comillas simples debería funcionar:

yyyy-MM-dd'T'hh:mm:ssZ

la documentación (énfasis mina):

  

Los formatos de fecha y hora se especifican mediante cadenas de patrones de fecha y hora. Dentro de las cadenas de fecha y hora de patrón, las cartas no cotizados de 'A' a 'Z' y desde 'a' a 'z' se interpretan como cartas patrón que representa los componentes de una cadena de fecha u hora. El texto puede ser citado el uso de comillas simples (') para evitar una interpretación. "''" representa una comilla simple. Todos los demás caracteres no se interpretan; son simplemente copian en la cadena de salida durante el formateo o la comparan con la cadena de entrada durante el análisis.

Su caso de uso específico siquiera está incluido como un ejemplo:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top