Conversões de/para string e Formatação

Classe Convert

Podemos usar os métodos da classe Convert para efetuar conversões.

Parse/Format

Estes são os métodos indicados quando existe intervenção do usuário, pois temos um bom controle de como será feita a conversão. Em ambos os métodos podemos especificar a formatação de duas formas:

  • Indicando a “Culture”.
  • Fornecendo uma string de conversão, como por exemplo “dd/MM/yyyy”.

Exemplo:

1
2
string dateString = "5/1/2008 8:30:52 AM";
DateTime date1 = DateTime.Parse(dateString, CultureInfo.InvariantCulture);

Para o caso da língua portuguesa, o mais usual é usar o formato “pt-BR” para garantir a conversão correta e evitar erros de data inválida, por exemplo:

1
2
3
4
5
DateTime date1 = new DateTime(2008, 3, 1, 7, 0, 0);
Console.WriteLine(date1.ToString(CultureInfo.CreateSpecificCulture("en-US")));
// Saída: 03/01/2008 07:00:00 
Console.WriteLine(date1.ToString(CultureInfo.CreateSpecificCulture("pt-BR")));
// Saída: 01/03/2008 07:00:00

Struct DateTime

O . NET Framework não tem um tipo intrínseco para data e hora. Existe, no entanto, a estrutura “DateTime” para armazenar e manipular este tipo de valores. O mesmo tipo armazena tanto data como hora. Isto é muito útil para manipular intervalos de tempo que passam de um dia.

Note que a estrutura é um tipo por valor. As cópias e atribuições seguem as regras dos tipos por valor. O valor armazenado em um “DateTime” corresponde ao número de “ticks” transcorridos desde 01/01/0001, armazenados em um inteiro de 8 bytes. Cada tick corresponde a 100 nanosegundos. Veja um exemplo:

1
DateTime D = new DateTime(tbAno.Text.ToInt32(), tbMes.Text.ToInt32() , tbDia.Text.ToInt32() );

Existem diversos construtores para a criação de valores DateTime. O utilizado no exemplo acima cria um DateTime a partir de três inteiros representando ano, mês e dia. Existem também diversos métodos, como por exemplo:

  • Now(): Extrai data e hora do sistema;
  • Today() : Extrai apenas data (hora é zerada);
  • Operadores para comparação, soma e subtração.