Uso de Caracteres alfabéticos en una cadena de patrón SimpleDateFormat


¿Es posible incluir un carácter alfabético en una cadena de patrón SimpleDateFormat?

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

2003-11-15T09:30:47-05:00.

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

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

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

Author: Raedwald, 2010-03-10

1 answers

Rodeando el T con comillas simples debería funcionar:

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

Citando de la documentación (énfasis mío):

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

Su caso de uso específico incluso se incluye como ejemplo:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
 125
Author: Joey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-10 12:36:38