Vimos em um outro artigo anterior como manipular data e hora (//www.devmedia.com.br/visualizacomponente.aspx?comp=962&site=3), nesse artigo vamos ver como formatar data e hora. Usamos formatação de data e hora para mostra ao usuário um formato mais agradável e legível. Especificando o formato da data e hora o aplicativo usará aquele formato independente do que está configurado no Windows.

Formatando Data e Hora

A função mais utilizada para formatar data e hora é FormatDateTime(formato, data) que pertence ao namespace Borland.Vcl.SysUtils, como usaremos o namespace pertencente a VCL podemos também usar a função FormatDateTime em projetos VCL não necessariamente com o .Net Framework.

Crie uma Console Application .Net para fazer as formatações de datas e horas, insira o código da Listagem 1 no projeto.

 

Listagem 1. Formatação de Data e Hora

var

  dataAtual : TDateTime;

begin

  dataAtual := TDateTime.Now;

  Console.WriteLine('** Formatação de dias **');

  Console.WriteLine('d: ' + FormatDateTime('d', dataAtual));

  Console.WriteLine('dd: ' + FormatDateTime('dd', dataAtual));

  Console.WriteLine('ddd: '+ FormatDateTime('ddd', dataAtual));

  Console.WriteLine('dddd: ' + FormatDateTime('dddd', dataAtual));

  Console.WriteLine('** Formatação de meses **');

  Console.WriteLine('M: -> ' + FormatDateTime('M', dataAtual));

  Console.WriteLine('MM: -> ' + FormatDateTime('MM', dataAtual));

  Console.WriteLine('MMM: -> ' + FormatDateTime('MMM', dataAtual));

  Console.WriteLine('MMMM: -> ' + FormatDateTime('MMMM', dataAtual));

  Console.WriteLine('** Formatação de anos **');

  Console.WriteLine('y: ' + FormatDateTime('y', dataAtual));

  Console.WriteLine('yy: ' + FormatDateTime('yy', dataAtual));

  Console.WriteLine('yyyy: ' + FormatDateTime('yyyy', dataAtual));

  Console.WriteLine('** Formatação de horas **');

  Console.WriteLine('hh: ' + FormatDateTime('hh', dataAtual));

  Console.WriteLine('HH: ' + FormatDateTime('HH', dataAtual));

  Console.WriteLine('** Formatação de minutos **');

  Console.WriteLine('mm: ' + FormatDateTime('mm', dataAtual));

  Console.WriteLine('** Formatação de segundos **');

  Console.WriteLine('ss: ' + FormatDateTime('ss', dataAtual));

  Console.WriteLine('** Formatação de milisegundos **');

  Console.WriteLine('z: ' + FormatDateTime('z', dataAtual));

  Console.WriteLine('zzz: ' + FormatDateTime('zzz', dataAtual));

  Console.WriteLine('** Formatações de personalizados **');

  Console.WriteLine('dd/MM/yyyy: ' + FormatDateTime('dd/MM/yyyy', dataAtual));

  Console.WriteLine('MM/dd/yyyy: ' + FormatDateTime('MM/dd/yyyy', dataAtual));

  Console.WriteLine('dd/MM: ' + FormatDateTime('dd/MM', dataAtual));

  Console.WriteLine('dd ddd/MMM/yyyy: ' + FormatDateTime('dd ddd/MMM/yyyy', dataAtual));

  Console.WriteLine('dd dddd/MMMM/yyyy: ' + FormatDateTime('dd dddd/MMMD/yyyy', dataAtual));

  Console.WriteLine('dddd dd/MMM/yyyy: ' + FormatDateTime('dddd dd/MMM/yyyy', dataAtual));

  Console.WriteLine('dd de MMMM de yyyy: ' + FormatDateTime(' dd "de" MMMM "de" yyyy', dataAtual));

  Console.WriteLine('t: ' + FormatDateTime('t', dataAtual));

  Console.WriteLine('tt: ' + FormatDateTime('tt', dataAtual));

  Console.ReadLine;

end.

 

Compile e execute o aplicativo de console o resultado você pode observar na Figura 1.

 

Imagem 

Figura 1. Resultado das diversas formatações aplicadas sobre a data e hora atual.

Além das formatações aqui mostradas pode-se usar agrupamento de formações por exemplo se você precisa apenas do mês e do ano use FormatDateTime(‘mm/yyyy’, dataAtual), isso facilita muito a exibição de data e hora.

Conclusões

Vimos como formatar data e hora usando o namespace Borland.VCL.SysUtils como é fácil e útil, a função FormatDateTime também esta disponível na VCL das versões 7.0, 6.0... do Delphi.