C#:
Obtendo a data atual

Como fazer:

C# oferece uma maneira direta de obter a data atual usando a classe DateTime, que faz parte do namespace System da .NET Framework. O exemplo abaixo demonstra como obter a data atual e, opcionalmente, a hora.

using System;

class Program
{
    static void Main()
    {
        // Obtém apenas a data atual
        DateTime currentDate = DateTime.Today;
        Console.WriteLine(currentDate.ToString("d"));  // Saída: MM/dd/yyyy
        
        // Obtém a data e hora atuais
        DateTime currentDateTime = DateTime.Now;
        Console.WriteLine(currentDateTime.ToString()); // Saída: MM/dd/yyyy HH:mm:ss

        // Obtém a data e hora atuais em UTC
        DateTime currentUtcDateTime = DateTime.UtcNow;
        Console.WriteLine(currentUtcDateTime.ToString()); // Saída: MM/dd/yyyy HH:mm:ss
    }
}

Em termos de bibliotecas de terceiros, NodaTime oferece uma alternativa robusta para manipulação de data e hora, incluindo a busca da data atual em diferentes calendários e zonas horárias.

using NodaTime;
using System;

class Program
{
    static void Main()
    {
        // Usando NodaTime para obter a data atual no calendário ISO
        LocalDate currentDate = SystemClock.Instance.GetCurrentInstant().InUtc().Date;
        Console.WriteLine(currentDate.ToString()); // Saída: yyyy-MM-dd

        // Para datas específicas de timezone
        DateTimeZone zone = DateTimeZoneProviders.Tzdb["America/New_York"];
        LocalDate currentZonedDate = SystemClock.Instance.GetCurrentInstant().InZone(zone).Date;
        Console.WriteLine(currentZonedDate.ToString()); // Saída: yyyy-MM-dd
    }
}

Isso demonstra o uso básico com a classe DateTime incorporada e as capacidades aprimoradas fornecidas pelo NodaTime, especialmente úteis para aplicações que requerem o tratamento de diferentes zonas horárias ou sistemas de calendário.