Resumo : neste tutorial você aprenderá como usar o DateTime
tipo C# para trabalhar com valores de data e hora.
Criando objetos DateTime em C#
The DateTime
é um tipo de valor que representa datas e horas com valores de January 1, 0001, 00:00:00
(meia-noite) a 11:59:59 PM, December 31 9999
.
Para criar um DateTime
objeto, você chama seu construtor e passa várias propriedades de data e hora, como ano, mês, dia, minuto, hora e segundo. Por exemplo:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
WriteLine(dt.ToString());
Linguagem de código: C# ( cs )
Saída:
5/15/2023 7:00:00 AM
Linguagem de código: C# ( cs )
Neste exemplo, criamos um DateTime
objeto com o valor 7:00:00 AM
ativado May 15, 2023
. O DateTime
construtor tem muitas sobrecargas de construtor.
Por exemplo, se você usar apenas ano, mês e dia, a hora será padronizada como 12:00:00 AM
:
using static System.Console;
var dt = new DateTime(2023, 5, 15);
WriteLine(dt.ToString());
Linguagem de código: C# ( cs )
Saída:
5/15/2023 12:00:00 AM
Linguagem de código: C# ( cs )
Acessando propriedades C# DateTime
O DateTime
objeto fornece muitas propriedades úteis que permitem trabalhar facilmente com datas e horas.
Por exemplo, você pode acessar Year
, Month
, Day
, Hour
, Minute
e Second
por meio das respectivas propriedades como esta:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
WriteLine(dt.Year);
WriteLine(dt.Month);
WriteLine(dt.Day);
WriteLine(dt.Hour);
WriteLine(dt.Minute);
WriteLine(dt.Second);
Linguagem de código: C# ( cs )
Saída:
2023
5
15
7
0
0
Linguagem de código: C# ( cs )
Para obter a hora local atual, você pode usar a DateTime.Now
propriedade. Por exemplo:
using static System.Console;
var dt = DateTime.Now;
WriteLine(dt.ToString());
Linguagem de código: C# ( cs )
Ele exibirá a hora local atual do computador onde você executa o programa.
Formatando valores DateTime em C#
O formato da data e hora depende de muitos fatores, como cultura, padrões internacionais e preferência pessoal.
Por padrão, o ToString()
método do DateTime
objeto retorna a representação de string de um valor de data e hora com base no padrão de data curta e longa da cultura atual. Por exemplo:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
WriteLine(dt.ToString());
Linguagem de código: C# ( cs )
Saída:
5/15/2023 7:00:00 AM
Linguagem de código: C# ( cs )
O método To ToString()
possui muitas sobrecargas que permitem personalizar a representação do valor de data e hora.
Por exemplo, você pode usar o especificador de formato "d"
e "D"
para formatar um DateTime
objeto usando o padrão de data curta e longa:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
WriteLine(dt.ToString("d")); // 5/15/2023
WriteLine(dt.ToString("D")); // Monday, May 15, 2023
Linguagem de código: C# ( cs )
Saída:
5/15/2023
Monday, May 15, 2023
Linguagem de código: C# ( cs )
Veja a string de formato padrão completo de data e hora para referência
Executando cálculos de DateTime
Para retornar um new DateTime
que adiciona um número especificado de anos, meses, dias, horas, minutos e segundos a um valor de uma DateTime
instância, você usa os métodos AddYears
, AddMonths
, AddDays
, AddHours
, AddMinutes
, AddSeconds
.
Por exemplo, o programa a seguir mostra como usar o AddYears()
método para adicionar um ano a uma DateTime
instância:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
// add one year
var dt2 = dt.AddYears(1);
WriteLine(dt2);
Linguagem de código: C# ( cs )
Saída:
5/15/2024 7:00:00 AM
Linguagem de código: C# ( cs )
Como o Add*
método retorna uma nova instância do DateTime
, você pode encadear os Add*
métodos assim:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
// add 1 year, 2 months, 3 days, and 4 hours
var dt2 = dt.AddYears(1)
.AddMonths(2)
.AddDays(3)
.AddHours(4);
WriteLine(dt2);
Linguagem de código: C# ( cs )
Saída:
7/18/2024 11:00:00 AM
Linguagem de código: C# ( cs )
Observe que para subtrair um número específico de anos, meses, dias, horas, minutos e segundos de uma DateTime
instância, você pode usar os métodos Add*, mas usar um valor negativo. Por exemplo:
using static System.Console;
var dt = new DateTime(2023, 5, 15, 7, 0, 0);
// subtract 1 year
var dt2 = dt.AddYears(-1);
WriteLine(dt2);
Linguagem de código: C# ( cs )
Saída:
5/15/2022 7:00:00 AM
Linguagem de código: C# ( cs )
Para calcular o intervalo de tempo entre dois DateTime
valores, você pode usar o Subtract
método. Por exemplo:
using static System.Console;
var dt1 = new DateTime(2023, 5, 15);
var dt2 = new DateTime(2022, 5, 15);
var interval = dt1.Subtract(dt2);
Console.WriteLine(interval.Days); // 365
Linguagem de código: C# ( cs )
Neste exemplo, criamos dois DateTime
objetos e usamos o Subtract()
método para subtrair o segundo DateTime
objeto do primeiro.
O valor de retorno do Subtract()
método é um intervalo de tempo com o tipo TimeSpan
. E, finalmente, exibimos o número de dias do intervalo de tempo no console.
Resumo
- Use
DateTime
o tipo C# para trabalhar com valores de data e hora.