Pergunta

O SimpleDateFormat:

SimpleDateFormat pdf = new SimpleDateFormat("MM dd yyyy hh:mm:ss:SSSaa");

A exceção jogada por pdf.parse("Mar 30 2010 5:27:40:140PM");:

java.text.ParseException: Unparseable date: "Mar 30 2010 5:27:40:140PM"

Alguma ideia?


Editar: Obrigado pelas respostas rápidas. Vocês todos estavam corretos, eu apenas perdi essa frase -chave nos documentos do SimpleDateFormat - provavelmente deveria chamá -lo um dia.

Foi útil?

Solução

A partir de SimpledateFormat javadocs:

Mês: Se o número de letras padrão for 3 ou mais, o mês será interpretado como texto; Caso contrário, é interpretado como um número.

Tente usar o padrão como "mmm dd yyyy"

Outras dicas

Primeiro, meses de três custos devem ser representados por MMM. Segundo, as duas horas de dígitos devem ser representadas por h. Terceiro, Mar parece ser inglês, você precisará fornecer um Locale.ENGLISH, senão ele não funcionará corretamente em máquinas com um local padrão padrão.

Os seguintes trabalhos:

SimpleDateFormat sdf = new SimpleDateFormat("MMM dd yyyy h:mm:ss:SSSa", Locale.ENGLISH);
System.out.println(sdf.parse("Mar 30 2010 5:27:40:140PM"));

Resultado (estou no GMT-4 sem DST):

Tue Mar 30 17:27:40 BOT 2010

Veja também o java.text.SimpleDateFormat Javadoc.

Por que você chamou pdf está além de mim, então eu o renomeei sdf ;)

MM significa Mês Numérico. Use mmm.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top