Conteúdo desenvolvido utilizando a linguagem C#
Neste artigo irei demostrar como podemos formatar utilizando o tipo de dados DateTime utilizando o String.Format.
Em algum momento você irá utilizar o tipo de dados DateTime, quer por passas via código um valor desse tipo ou obter de uma tabela no seu banco de dados. Neste caso, existem algumas formas de alterarmos o valor padrão de datas.
Entretanto, no exemplo de hoje iremos utilizar a classe String.Format. Esta classe nos permitirá personalizar a saída padrão da data.
Para criar os formatos de data customizados, usamos algumas letras específicas onde cada letra significa uma parte da data.
- y (ano);
- M (mês);
- d (dia);
- h (hora 12);
- H (hora 24);
- m (minuto);
- s (segundo);
- f (fração de segundo)
- F (fração de segundo, mostrando zeros após a unidade inteira ex: 0.2000);
- t (P.M ou A.M);
- z (time zone).
Existem
alguns formatos que o .net já possuí pré-definido para se ajustar conforme as
configurações de localidade do sistema operacional:
Especificador
Tipo
Formato
Saída
(Ex.: Tipo double 1.2345)
Saída
(Ex.: Tipo int -12345)
c
Currency (Moeda)
{0:c}
£1.23
-£12,345.00
d
Decimal
{0:d}
System.FormatException
-12345
e
Exponencial / Formatação científica
{0:e}
1.234500e+000
-1.234500e+004
f
Ponto fixo
{0:f}
1.23
-12345.00
g
Generalizada
{0:g}
1.2345
-12345
n
Numérica
{0:n}
1.23
-12,345.00
r
Arredondado
{0:r}
1.23
System.FormatException
x
Hexadecimal
{0:x4}
System.FormatException
ffffcfc7
Especificador
|
Tipo
|
Formato
|
Saída
(Ex.: Tipo double 1234.56) |
0
|
Completar com zeros
|
{0:00.000}
|
1234.560
|
#
|
Máscarar um número
|
{0:#.##}
|
1234.56
|
.
|
Posicionar o separador de decimal
|
{0:0.0}
|
1234.6
|
,
|
Posicionar o separador de milhar
|
{0:0,0}
|
1,235
|
%
|
Porcentagem
|
{0:0%}
|
123456%
|
specificador
|
Tipo
|
Saída
(Ex.: 19 de Setembro de 1980 14:30:59) |
d
|
Data curta
|
19/09/1980
|
D
|
Data long
|
19 Setembro 1980
|
t
|
Hora Curta
|
14:30
|
T
|
Hora Longa
|
14:30:59
|
f
|
Data e Hora
|
19 Setembro 1980 14:30
|
F
|
Data e Hora completo
|
19 Setembro 1980 14:30:59
|
g
|
Data de Hora padrão
|
19/09/1980 14:30
|
G
|
Data de Hora padrão longo
|
19/09/1980 14:30:59
|
M
|
Dia / Mês
|
19 Setembro
|
r
|
Sex, 19 Set 1980 14:30:59 GMT
| |
s
|
Sortable data/hora
|
1980-09-19T14:30:59
|
u
|
Hora Universal, Timezone local
|
1980-09-19 14:30:59Z
|
Y
|
Mês / Ano
|
Setembro 1980
|
Especificador
|
Tipo
|
Saída
(Ex.: Setembro 19, 1980 14:30:59) |
dd
|
Dia
|
19
|
ddd
|
Nome curto do dia
|
Sex
|
dddd
|
Nome completo do dia
|
Sexta-feira
|
hh
|
2 dígitos para a hora
|
02
|
HH
|
2 dígitos para a hora (24 horas)
|
14
|
mm
|
2 dígitos para o minuto
|
30
|
MM
|
Mês
|
09
|
MMM
|
Nome curto do Mês
|
Set
|
MMMM
|
Nome do Mês
|
Setembro
|
ss
|
Segundos
|
59
|
tt
|
AM/PM
|
PM
|
yy
|
2 dígitos do Ano
|
80
|
yyyy
|
4 dígitos do Ano
|
1980
|
:
|
Separador, ex. {0:hh:mm:ss}
|
14:30:59
|
/
|
Seperator, ex. {0:dd/MM/yyyy}
|
08/06/1970
|
Vejam alguns exemplos de como você poderá utilizar os tipos mostrados anteriormente:
Abaixo irei mostrar alguns exemplos de uso de Format, que poderão ajudar na leitura rápida:
int Valor = 803;
string
Formato1 = String.Format("{0:C}", Valor); //Moeda
string
Formato2 = String.Format("{0:C8}", Valor); //Moeda com 8 casas decimais
string
Formato3 = String.Format("{0:D}", Valor); //Decimal
string
Formato4 = String.Format("{0:D15}", Valor); //Decimal com 15 posições
string
Formato5 = String.Format("{0:E}", Valor); //Exponencial XXX.XXXe+xxx
string
Formato6 = String.Format("{0:F}", Valor); //Ponto Fixo
string
Formato7 = String.Format("{0:G}", Valor); //Formato Geral ou Científico
string
Formato8 = String.Format("{0:N}", Valor); //Numérico
string
Formato9 = String.Format("{0:N7}", Valor); //Numérico com 7 casas decimais
string
Formato10 = String.Format("{0:X}", Valor); //Representação Hexadecimal
string
Formato11 = String.Format("{0:x}", Valor); //Representação Hexadecimal também
long
CNPJ = 05662546000135;
string
CNPJFormatado = String.Format(@"{0:00\.000\.000\/0000\-00}",
CNPJ); //Formatar de Long para CNPJ
long RG
= 305617853;
string RGFormatado = String.Format(@"{0:00\.000\.000\-0}", RG);