19
May 08

Delphi: FormatDateTime

:: articles :: by Gilberto Saraiva

Camaradas,

FormatDateTime é um procedimento que retorna uma string de acordo com o formato passado como 1º parametro usando o 2º parametro que é a data.

 Delphi |  copy code |? 
1
2
// SysUtils.pas [Delphi 7]:
3
function FormatDateTime(const Format: string; DateTime: TDateTime): string;
4
begin
5
  DateTimeToString(Result, Format, DateTime);
6
end;

Exemplo:

 Delphi |  copy code |? 
1
2
begin
3
  ShowMessage(FormatDateTime('dd/mm/yyyy', (Now + 1)));
4
end;
5

Resultará em uma mensagem contendo:
‘19/05/2008′

Uma das grandes facilidade que ele traz é durante a interação com um banco de dados:
Exemplo para o mySQL:

 Delphi |  copy code |? 
01
02
begin
03
  MyQuery.SQL.Text := Format(
04
    'SELECT * FROM `log` WHERE `date` BETWEEN ''%s'' AND ''%s''',
05
    [
06
      // Data inicial
07
      FormatDateTime('yyyy-mm-dd', (Now)),
08
      // Data final
09
      FormatDateTime('yyyy-mm-dd', (Now + 1))
10
    ]);
11
end;
12

Sintaxes para formatação:

Sintax Finalidade Resultado
c Resulta na Data e hora com o formato ShortDateFormat + LongTimeFormat. (Se for exatamente meia-noite não irá mostrar a hora) 02/09/2008 07:04:01
d Resulta no valor número que representa o Dia do mês ( sem 0 na frente ) 2
dd Resulta no valor número que representa o Dia do mês ( com 0 na frente [00] ) 02
ddd Resulta na abraviação do nome do dia da semana ter
dddd Resulta no nome do dia da semana terça-feira
ddddd Resulta na data formatada usando ShortDateFormat 02/09/2008
dddddd Resulta na data formatada usando LongDateFormat terça-feira, 2 de setembro de 2008
m Resulta no valor número que representa o mês ( sem 0 na frente ) 9
mm Resulta no valor número que representa o mês ( com 0 na frente [00] ) 09
mmm Resulta na abreviação do nome do mês set
mmm Resulta no nome do mês setembro
y Resulta no ano em dois digitos 08
yyyy Resulta no ano em quatro digitos 2008
h Resulta nas horas ( sem 0 na frente ) 7
hh Resulta nas horas ( com 0 na frente [00] ) 07
n Resulta nos minutos ( sem 0 na frente ) 4
nn Resulta nos minutos ( com 0 na frente [00] ) 04
s Resulta nos segundos ( sem 0 na frente ) 1
ss Resulta nos segundos ( com 0 na frente [00] ) 01
z Resulta nos milisegundos ( sem 0 na frente ) 31
zzz Resulta nos milisegundos ( com 0 na frente [000] ) 031
t Resulta na hora formatada usando ShortTimeFormat 07:04
tt Resulta na hora formatada usando LongTimeFormat 07:04:01
am/pm Reajusta a hora resultada para horários de 12 horas (manha e tarde) 07:04 am

Abraço a todos

Tags: , , ,


One comment

  1. Excelente explicação.
    Grande Abraço

Leave a comment