Pergunta

Estou buscando um RSS, no qual recebo o seguinte carimbo de data:

2010-05-10T06:11:14.000Z

Agora estou usando o nsdateformatter para analisar este carimbo DateTime.

[parseFormatter setDateFormat:@"yyyy-MM-dTH:m:s.z"];

Mas não está funcionando bem se apenas remover a parte do carimbo de hora em que funciona para a data [parseFormatter setDateFormat:@"yyyy-MM-d"]; Mas se eu adicionar o restante das coisas, ele retornará nulo.

Qualquer ideia ?

Desde já, obrigado....

Foi útil?

Solução

Você precisa analisar valores acolchoados zero para d, h, m, s

Você precisa escapar do literal T Como 'T'

Você precisa analisar a parte fracionária dos segundos com SSS

Você pode aceitar um literal Z com 'Z' Ou use o manto de maiúsculas Z para tentar analisar o fuso horário, mas o RSS usa padrão separado.

@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"

Padrões de formato de data

Outras dicas

Da memória, também tive esse problema no passado. Algumas coisas para tentar:

  1. Substitua o "t" no seu feed RSS por um espaço (e obviamente altere a string de formato de data).

  2. Seu feed RSS possui dígitos acolchoados, onde sua sequência de formato não. Experimente isso "AAAA-MM-DDTHH: MM: SS.Z". De acordo com este link, esse "z" deve ser capicalizado. http://www.stepcase.com/blog/2008/12/02/format-string-for-the-iphone-nsdateformatter/

  3. Retire as informações do fuso horário do feed RSS e analise isso manualmente. Parece que me lembro disso causando problemas para mim.

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