août 21, 2022

Tutoriel : Conversion de dates et heures en .NET 6

Nous avons tous eu des soucis avec les dates et les heures au moins une fois, à chercher comment obtenir uniquement l’heure ou la date à partir d’une chaine ou d’un objet date.

Depuis l’arrivé de .NET 6.0 , Microsoft nous a simplifié la vie. Nous allons voir dans cet article quelques une des méthodes permettant de passer de DateOnly vers TimeOnly et vice versa.

Conversion de DateTime vers DateOnly

// Creation de l'objet DateTime
DateTime testDateTime = new DateTime(2021,09,21);
// Creation de DateOnly à partir de DateTime
DateOnly testDateOnly = DateOnly.FromDateTime(testDateTime);
Console.WriteLine(testDateOnly.ToString());
//Output -> 09/21/2021

Conversion de DateTime vers TimeOnly

// Creation de l'objet DateTime
DateTime testDateTime = new DateTime(2021,09,21,03,13,22);
// Creation de TimeOnly à partir de DateTime.
TimeOnly testTimeOnly = TimeOnly.FromDateTime(testDateTime);
Console.WriteLine(testTimeOnly.ToLongTimeString());
//Output -> 03:13:22

Conversion de DateOnly vers DateTime

// Creation d'une instance de DateOnly
DateOnly dateOnly = new DateOnly(2021, 9, 16);
// Conversion de DateOnly vers DateTime à partir de Time Info
DateTime testDateTime = dateOnly.ToDateTime(TimeOnly.Parse("10:00 PM"));
Console.WriteLine(testDateTime);
//Output -> 09/16/2021 22:00:00

Comme vous pouvez le constater, le framework .NET Core nous aide grandement dans les conversions de dates et heures.

Je n’ai volontairement pas mis la conversion de TimeOnly vers DateTime car l’objet TimeOnly ne contient pas de données de dates donc il serait un peu plus compliqué de convertir TimeOnly vers DateTime mais je vais vous mettre un exemple si vous deviez le faire :

//Création de l'instant de TimeOnly
TimeOnly timeOnly = new TimeOnly(10, 10, 10);
//Création d'une instance de Date
var referenceDate = new DateTime(2022, 1, 1);
//Rajout de l'heure à l'instance de DateOnly
referenceDate += timeOnly.ToTimeSpan();
Console.WriteLine(dateTime); // 1/1/2022 10:10:10 AM

Conclusion

Vous n’avez plus aucune raison de passer énormément de temps à faire des conversions de dates en heures car le framework est très bien doté à l’heure actuelle ! 😎

Have fun coding !