sql >> Databáze >  >> NoSQL >> MongoDB

Správné vložení DateTime z c# do mongodb

Myslím, že jsi zmatený z časových pásem. Z na konci řetězce označuje, že je v UTC. Když jste zveřejnili tuto otázku, bylo těsně po 15:30 UTC.

Mám silné podezření, že se zaznamenává správný okamžik v čase - ale zaznamenává se jako okamžik v čase bez odkazu na konkrétní časové pásmo. Poté můžete konvertovat to do libovolného časového pásma později, ale záznam času UTC je téměř vždy správný přístup.

Kromě toho to můžete objasnit pomocí UtcNow začít. Tímto způsobem je více zřejmé, že se nesnažíte získat „místní“ čas.

Když se podíváme na dokumentaci MongoDB, zdá se, že interní reprezentace je prostě několik milisekund od epochy Unixu - takže opět nemá žádnou indikaci časového pásma nebo posunu mezi UTC a místním časem. Pokud chcete uložit hodnotu, kterou lze převést zpět na místní čas, který jste viděli, když byla zaznamenána (i když jste nyní v jiném časovém pásmu) byste měli uložit ID časové zóny a/nebo offset UTC jako samostatnou hodnotu. To není potřeba příliš často, ale je to možnost.



  1. Nastavte expiraci Cache Redis na 1 rok

  2. Uložte datum v MongoDB bez ohledu na časové pásmo

  3. MongoDB:Jak seskupit vnořená pole v jednom dokumentu?

  4. Proč moje reference nevyplňují dokumenty?