Travailler avec les dates et l'heure en C# : guide complet

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction au travail avec les dates et l'heure en C#



Le travail avec les dates et l'heure est l'une des tâches fondamentales dans le développement de logiciels. Qu'il s'agisse de journalisation d'événements, de calcul de délais, de création de rapports ou de travail avec des bases de données, savoir gérer correctement les données temporelles est essentiel. En C# (plateforme .NET), il existe un ensemble d'outils puissant et flexible à cet effet, comprenant les structures DateTime, TimeSpan et DateTimeOffset.



Dans cet article, nous allons examiner en détail tous les aspects clés du travail avec les dates et l'heure en C#. Vous apprendrez comment créer, formater, comparer et manipuler des données temporelles, et vous découvrirez les meilleures pratiques pour éviter les erreurs courantes.



Structures principales : DateTime, TimeSpan et DateTimeOffset



Structure DateTime



DateTime est la structure principale pour représenter un instant dans le temps (date + heure). Elle peut représenter des valeurs du 01.01.0001 au 31.12.9999.



Création d'un objet DateTime :



// Date et heure actuellesDateTime now = DateTime.Now;DateTime utcNow = DateTime.UtcNow;

// Date et heure spécifiquesDateTime specificDate = new DateTime(2025, 3, 15, 14, 30, 0); // 15 mars 2025, 14:30:00

// Analyse à partir d'une chaîneDateTime parsedDate = DateTime.Parse("2025-03-15");

// Utilisation de TryParse pour une analyse sécuriséeif (DateTime.TryParse("2025-03-15", out DateTime result)){ Console.WriteLine($"Analyse réussie : {result}");}


Propriétés et méthodes principales :



  • Date — retourne uniquement la date (heure = 00:00:00)
  • Year, Month, Day, Hour, Minute, Second — composants individuels
  • DayOfWeek — jour de la semaine (enum)
  • AddDays(), AddMonths(), AddYears() — arithmétique des dates
  • AddHours(), AddMinutes(), AddSeconds() — arithmétique du temps


Structure TimeSpan



TimeSpan représente un intervalle de temps (l'écart entre deux instants). Ce n'est pas une date, mais une durée.



// Création d'un TimeSpanTimeSpan interval = new TimeSpan(2, 15, 30); // 2 heures, 15 minutes, 30 secondes

// Différence entre deux datesDateTime start = new DateTime(2025, 1, 1);DateTime end = new DateTime(2025, 1, 10);TimeSpan difference = end - start; // 9 jours

// Propriétés de TimeSpanConsole.WriteLine($"Jours : {difference.Days}"); // 9Console.WriteLine($"Total d'heures : {difference.TotalHours}"); // 216Console.WriteLine($"Total de minutes : {difference.TotalMinutes}"); // 12960

// Arithmétique avec TimeSpanTimeSpan workDay = new TimeSpan(8, 0, 0); // 8 heuresTimeSpan breakTime = new TimeSpan(1, 0, 0); // 1 heureTimeSpan actualWork = workDay - breakTime; // 7 heures


Structure DateTimeOffset



DateTimeOffset est une version améliorée de DateTime qui prend en compte le décalage par rapport à UTC. C'est essentiel pour les applications qui travaillent avec des utilisateurs de différents fuseaux horaires.



// Heure actuelle avec le fuseau horaireDateTimeOffset nowOffset = DateTimeOffset.Now;

// Création avec indication du décalageDateTimeOffset withOffset = new DateTimeOffset(2025, 3, 15, 14, 0, 0, TimeSpan.FromHours(3));

// Conversion entre fuseaux horairesDateTimeOffset utc = withOffset.ToUniversalTime();DateTimeOffset local = withOffset.ToLocalTime();

// Obtention du décalageConsole.WriteLine($"Décalage : {withOffset.Offset}"); // +03:00


Quand utiliser DateTimeOffset au lieu de DateTime ? Si votre application travaille avec des utilisateurs de différents fuseaux horaires ou stocke des données en UTC, utilisez DateTimeOffset. Cela évite

Blogs

Book Recommendations