Olá pessoal nesta Quick iremos continuar vendo datas no Delphi.

 

 

Variável global ShortDateFormat

 

                A variável global ShortDateFormat fornece a formatação curta usada, por padrão, na conversão de datas em strings. Esta variável é usada pelas funções DateToStr(), DateTimeToStr() e DateTimeToString(). Os caracteres de formatação usados são:

 

y = Ano com 2 dígitos

yy = Ano com 2 dígitos

yyyy = Ano com 4 dígitos

m = Número do mês do ano sem o 0 no início

mm = Número do mês com 2 dígitos

mmm = Mês usando nomes curtos (Jan)

mmmm = Mês usando nomes longos (Janeiro)

d = Número do dia sem o 0 no início

dd = Número do dia com dois dígitos

ddd = Dia usando nomes curtos (Dom)

dddd = Dia usando nomes longos (Domingo)

 

Veja o trecho de código abaixo:

 

procedure TForm1.Button1Click(Sender: TObject);

var

data: TDateTime;

begin

// vamos construir a data

data := StrToDate('13/03/2009');

// vamos exibir usando a formatação padrão de ShortDateFormat

showMessage(DateToStr(data));

// vamos alterar o padrão de formatação de ShortDateFormat

ShortDateFormat := 'dd ''de'' mmmm ''de'' yyyy';

// experimente também

// ShortDateFormat := 'dd/mm/yyyy';

// vamos exibir usando a nova formatação

ShowMessage(DateToStr(data));

end;

               

                Como a variável ShortDateFormat é indicada para uso global, é interessante você definir o

formato customizado em apenas um lugar de seus códigos, de forma a reaproveitar a

formatação nas demais partes de seus programas.

No Windows, a formatação inicial de ShowDateFormat vem de LOCALE_SSHORTDATE, uma

constante da API do Windows.

 

Formatando datas e horas usando a função FormatDateTime()

 

Em algumas situações precisamos formatar um TDateTime e exibir seus valores de data e hora

em formatos mais amigáveis ao usuário. Para isso o Delphi nos fornece a função FormatDateTime(), presente na unit SysUtils. Esta função recebe uma string de formatação e um TDateTime e retorna uma string contendo a data e hora formatadas. Veja um exemplo:

 

procedure TForm1.Button1Click(Sender: TObject);

var

data: TDateTime;

formatada: string;

begin

// vamos obter a data de hoje

data := Now;

// vamos formatar

formatada := FormatDateTime('dddd, dd "de" mmmm "de" yyyy',

data);

// vamos exibir o resultado

ShowMessage(formatada);

end;

 

                Aqui a data será exibida em um formato semelhante à "sexta-feira, 25 de março de 2010", ou seja, o formato de data longa do Windows.

                Para tirar o máximo proveito da função FormatDateTime(), é importante conhecer os caracteres de formatação permitidos na função. Veja:

 

c - Exibe a data usando o formato dado pela variável global ShortDateFormat, seguida pelas

horas usando o formato dado pelo variável global LongTimeFormat. As horas não serão

exibidas se o valor das horas indicarem meia-noite.

d - Exibe o dia como um número não precedido de zero (1-31).

dd - Exibe o dia como um número precedido de zero (01-31).

ddd - Exibe o dia como uma abreviação (Dom-Sáb) usando as strings fornecidas pela variável

global ShortDayNames.

dddd - Exibe o dia com o nome completo (Domingo-Sábado) usando as strings dadas pela

variável global LongDayNames.

ddddd - Exibe a data usando o formato dado pela variável global ShortDateFormat.

dddddd - Exibe a data usando o formato dado pela variável global LongDateFormat.

e - (Windows somente) - Exibe o ano na era/período atual como um número não precedido

por zero (somente os locales Japanese, Korean e Taiwanese).

ee - (Windows somente) - Exibe o ano na era/período atual como um número precedido por

zero (somente os locales Japanese, Korean e Taiwanese).

g - (Windows somente) - Exibe a era/período atual como uma abreviação (somente os locales

Japanese e Taiwanese).

gg - (Windows somente) - Exibe a era/período atual com um nome completo (somente os

locales Japanese e Taiwanese).

m - Exibe o mês como um número não precedido por zero (1-12). Se o especificador m seguir

imediatamente um especificador h ou hh, os minutos, e não é mês, são exibidos.

mm - Exibe o mês como um número precedido por zero (01-12). Se o especificador m seguir

imediatamente um especificador h ou hh, os minutos, e não é mês, são exibidos.

mmm - Exibe o mês como uma abreviação (Jan-Dez) usando as string dadas pela variável

global ShortMonthNames.

mmmm - Exibe o mês com um nome completo (Janeiro-Dezembro) usando as strings dadas

pela variável global LongMonthNames.

yy - Exibe o ano com dois dígitos (00-99).

yyyy - Exibe o ano com quatro dígitos (0000-9999).

h - Exibe a hora não precedida por zero (0-23).

hh - Exibe a hora precedida por zero (00-23).

n - Exibe os minutos não precedidos por zero (0-59).

nn - Exibe os minutos precedidos por zero (00-59).

s - Exibe os segundos não precedidos por zero (0-59).

ss - Exibe os segundos precedidos por zero (00-59).

z - Exibe os milisegundos não precedidos por zero (0-999).

zzz - Exibe os milisegundos precedidos por zero (000-999).

t - Exibe as horas usando o formato dado pela variável global ShortTimeFormat.

tt - Exibe as horas usando o formato dado pela variável global LongTimeFormat.

am/pm - Usa o relógio de 12 horas para os especificadores h ou h precedentes e exibe "am"

para as horas antes do meio-dia e "pm" para as horas depois do meio-dia. O especificador

am/pm pode ser em letras minúsculas, maiúsculas ou uma combinação destas.

a/p - Usa o relógio de 12 horas para os especificadores h ou h precedentes e exibe "a" para as

horas antes do meio-dia e "p" para as horas depois do meio-dia. O especificador a/p pode ser

em letras minúsculas, maiúsculas ou uma combinação destas.

ampm - Usa o relógio de 12 horas para os especificadores h ou hh e exibe o conteúdo da

variável global TimeAMString para qualquer hora antes do meio-dia e o conteúdo de

TimePMString para as horas depois do meio-dia.

/ - Exibe o caractere de separador de datas dado pela variável global DateSeparator.

: - Exibe o caractere de separador de horas dado pela variável global TimeSeparator.

'xx'/"xx" - Caracteres em aspas simples ou duplas não são formatados.

 

 

Conclusão: Podemos perceber que é muito útil a utilização de datas no Delphi, busco trazer a vocês o início, de como trabalhar com datas, utilizando a unit DateUtils, Abra esta unit e veja o conteúdo da mesma.

 

Vou ficando por aqui.

 

Um abraço

 

Rubens Antunes

Leia todos artigos da série