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.
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 para observar o resultado.
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.
Um abraço e até a próxima.