DateTime vs DateTimeOffset en C# : quel type choisir pour travailler avec les dates et les fuseaux horaires ?
Salut, collègues ! Je suis novice en C# et .NET, et je suis confus concernant les types DateTime et DateTimeOffset. Apparemment, les deux sont conçus pour stocker la date et l'heure, mais pourquoi alors deux types différents ?
J'écris une petite application de gestion de tâches. Les utilisateurs peuvent créer des tâches et spécifier une deadline. Il est logique de stocker la date et l'heure de la deadline. Au début, j'ai utilisé DateTime :
```csharp
DateTime deadline = new DateTime(2025, 12, 31, 23, 59, 0);
Console.WriteLine($"Deadline : {deadline}");
```
Mais ensuite, j'ai remarqué que si l'utilisateur est à Moscou et que le serveur est en UTC, l'heure peut s'afficher de manière incorrecte. J'ai essayé d'utiliser la propriété `.Kind` (Local, Utc, Unspecified), mais cela n'a fait qu'ajouter à la confusion.
Finalement, je suis tombé sur DateTimeOffset. Apparemment, il stocke également le décalage par rapport à UTC. Mais quand
No answers yet.
Connectez-vous pour laisser une réponse
Blogs