Parse de Datas

by Israel Aece 8. January 2010 06:00

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);

Tags:

.NET Framework

Comments

1/8/2010 6:27:41 AM #

pingback

Pingback from topsy.com

Twitter Trackbacks for
        
        Israel Aece | Parse de Datas
        [israelaece.com]
        on Topsy.com

topsy.com

1/8/2010 9:33:21 AM #

Alexsandre

  Ó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 !!

Alexsandre Brazil

1/8/2010 9:50:08 PM #

Ari C. Raimundo

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

Ari C. Raimundo Brazil

1/8/2010 10:02:43 PM #

IsraelAece

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.

IsraelAece Brazil

Comments are closed

Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Host