MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Corriger l'insertion DateTime de c # à mongodb

Je pense que tu t'embrouilles avec les fuseaux horaires. Le Z à la fin de la chaîne indique qu'il est en UTC. Lorsque vous avez posté cette question, il était juste après 15h30 UTC.

Je soupçonne fortement que l'instant correct dans le temps est enregistré - mais il est enregistré comme un instant dans le temps sans référence à un fuseau horaire particulier. Vous pouvez alors convertir que dans n'importe quel fuseau horaire que vous voulez plus tard, mais l'enregistrement de l'heure UTC est presque toujours la bonne approche.

En passant, vous pouvez rendre cela plus clair en utilisant UtcNow commencer avec. De cette façon, il est plus évident que vous n'essayez pas d'obtenir une heure "locale".

En regardant la documentation MongoDB, il semble que la représentation interne est simplement un nombre de millisecondes depuis l'époque Unix - donc encore une fois, cela n'a aucune indication de fuseau horaire ou de décalage entre UTC et l'heure locale. Si vous souhaitez stocker une valeur qui peut être reconvertie à l'heure locale que vous avez vue lors de son enregistrement (même si vous êtes maintenant dans un fuseau horaire différent), vous devez stocker un ID de fuseau horaire et/ou le décalage UTC en tant que valeur distincte. Ce n'est pas très souvent nécessaire, mais c'est une option.