Pergunta

É possível incluir um caractere alfabético em uma cadeia padrão SimpleDateFormat?

Eu estou tentando criar uma seqüência de formato, onde a letra 'T' é incluído antes do tempo, por exemplo:

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

Atualmente, estou usando yyyy-MM-ddhh:mm:ssZ como a cadeia padrão.

Se eu mudá-lo para yyyy-MM-ddThh:mm:ssZ ele irá lançar uma exceção como 'A' a 'Z' e 'a' a 'z' são reservados.

Existe alguma solução que não envolvem o uso de dois DateFormats?

Foi útil?

Solução

Em torno da T com aspas simples deve funcionar:

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

a documentação (ênfase meus):

formatos

Data e hora são especificadas por data e hora cadeias padrão. Dentro de data e tempo padrão cordas, cartas não cotadas de 'A' para 'Z' e de 'a' para 'z' são interpretados como cartas padrão que representa os componentes de uma seqüência de data ou hora. O texto pode ser citado usando aspas simples (') à interpretação evitar. "''" representa uma única citação. Todos os outros caracteres não são interpretados; eles estão simplesmente copiado para a cadeia de saída durante a formatação ou comparado com a seqüência de entrada durante a análise.

O seu caso de uso específico é mesmo incluído como um exemplo:

Date and Time Pattern            Result
-------------------------------------------------------------
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"     2001-07-04T12:08:56.235-0700  
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top