303 votes

DateTime.Now vs. DateTime.UtcNow

Je me suis demandé quels sont exactement les principes de fonctionnement des deux propriétés. Je sais que le second est universel et ne concerne essentiellement pas les fuseaux horaires, mais est-ce que quelqu'un peut expliquer en détail comment ils fonctionnent et lequel doit être utilisé dans quel scénario?

59voto

Magnus Krisell Points 81

Notez également la différence de performance; DateTime.UtcNow est environ 30 fois plus rapide que DateTime.Now, car en interne DateTime.Now effectue de nombreux ajustements de fuseau horaire (vous pouvez facilement le vérifier avec Reflector).

Donc, n'utilisez pas DateTime.Now pour les mesures de temps relatives.

8voto

Omer van Kloeten Points 6268

DateTime n'a aucune idée de ce que sont les fuseaux horaires. Cela suppose toujours que vous êtes à l'heure locale. UtcNow signifie seulement "Soustrayez mon fuseau horaire de l'heure".

Si vous souhaitez utiliser des dates compatibles avec les fuseaux horaires, utilisez DateTimeOffset , qui représente une date / heure avec un fuseau horaire. Je devais apprendre ça à la dure.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X