Parse de Datas


Para quem trabalha com o padrão de comunicação APL/APC, é muito comum que dentro de um arquivo as datas estejam formatadas da seguinte forma: ddMMyyyy (20/07/2010), ou seja, sem as barras ou qualquer outro tipo de separador entre o dia, mês e o ano.

Só que gostaríamos de trazer isso para um DateTime, para assim conseguir manipular melhor a data. Como fazer? Muitos optam pela manipulação da string, via método Substring, etc. Apesar de funcionar, dá um trabalho muito grande. Os métodos Parse da estrutura DateTime ou o ToDateTime da classe Convert, tentam converter a string seguindo o formato especificado pela cultura atual. A cultura geralmente tem uma formatação própria, como por exemplo, a cultura pt-BR é dd/MM/yyyy; já a en-US é MM/dd/yyyy, etc., e se utilizarmos uma dessas técnicas aqui, uma exceção do tipo FormatException é disparada, informando o problema.

Para resolver isso, você pode recorrer ao método ParseExact, também da classe DateTime, que também tem a finalidade de converter uma string em DateTime, mas seguindo uma formatação específica. Ao invocar este método, você deve informar o formato exato em que a data está definida dentro da string, e que no nosso caso é ddMMyyyy:

string data = “20072010”;
DateTime dataDePagamento = DateTime.ParseExact(data, “ddMMyyyy”, null);

Anúncios

3 comentários sobre “Parse de Datas

  1. Ótima dica Israel. Aproveito para parabenizar e agradecer pelo blog. Seus artigos são muito bons tecnicamente e muito bem escritos. Continue com esses posts de grande utilidade. Valeu !!

    • Israel,

      Parabéns pelo blog, é a primeira vez que comento alguma coisa. Tenho lido seus posts já há algum tempo (inclusive nos fóruns do MSDN). Os assuntos são muito interessantes e muito bem apresentados.

      Em relação ao post "Parse de Datas", acho que só faltou comentar sobre o método TryParseExact.

      Um abraço !

      Ari

    • Boas Ari,

      Obrigado pelo comentário.

      O método TryParseExact tem a mesma finalidade, nas ao invés de disparar uma exceção quando o parser não for possível, o método retornará False e você avalia este retorno para determinar se a data é válida ou não.

      O valor convertido é retornado através de de um parâmetro de saída.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s