Dal punto di vista della BCL, una delle novità più interessanti introdotte da .NET 6 è il tipo DateOnly. Questo è un tipo che permette di esprimere solamente una data senza l'orario come avviene per i tipi DateTime e DatetimeOffset. Il suo utilizzo è previsto in tutti quei casi dove l'orario non è utile ai fini della modellazione come date di nascita, anniversari, scadenza di documenti e molto altro ancora.
DateOnly supporta la maggior parte delle operazioni già supportate dai tipi esistenti come l'aggiunta e sottrazione di periodi temporali (giorni, mesi anni), il calcolo della differenza tra date, il parsing e la formattazione. A questi, si aggiungono anche metodi di conversione per creare un DateOnly partendo da un DateTime e viceversa.
Questi esempi sono visibili nel seguente codice.
var date1 = new DateOnly(2022, 1, 10); //Proprietà Console.WriteLine(date1.Year); Console.WriteLine(date1.Month); Console.WriteLine(date1.Day); Console.WriteLine(date1.DayOfWeek); // Manipolazione var date2 = date.AddDays(10); // differenza in giorni tra date var days = date2.DayNumber - date1.DayNumber; //Parsing var date3 = DateOnly.ParseExact("2022/01/10", "yyyy/MM/dd"); // Crea un DateTime partendo da un DateOnly passando in input un orario var dt = date3.ToDateTime(new TimeOnly(0, 0)); // Crea un DateOnly partendo daun DateTime var today = DateOnly.FromDateTime(DateTime.Today);
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Utilizzare la session affinity con Azure Container Apps
Usare le collection expression per inizializzare una lista di oggetti in C#
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Come migrare da una form non tipizzata a una form tipizzata in Angular
Usare le navigation property in QuickGrid di Blazor
Eseguire query verso tipi non mappati in Entity Framework Core
Assegnare un valore di default a un parametro di una lambda in C#
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Limitare le richieste lato server con l'interactive routing di Blazor 8
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Sfruttare lo stream rendering per le pagine statiche di Blazor 8
Usare un KeyedService di default in ASP.NET Core 8