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.
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.