Incapaz de analisar a data usando nsdateformatter
-
25-09-2019 - |
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....
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'"
Outras dicas
Da memória, também tive esse problema no passado. Algumas coisas para tentar:
Substitua o "t" no seu feed RSS por um espaço (e obviamente altere a string de formato de data).
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/
Retire as informações do fuso horário do feed RSS e analise isso manualmente. Parece que me lembro disso causando problemas para mim.