sql >> Databasteknik >  >> NoSQL >> MongoDB

Rätt infoga DateTime från c# till mongodb

Jag tror att du blir förvirrad av tidszoner. Z i slutet av strängen anger att den är i UTC. När du postade den här frågan var det strax efter 15:30 UTC.

Jag misstänker starkt att det korrekta ögonblicket i tiden registreras - men det spelas in som ett ögonblick i tiden utan hänvisning till en viss tidszon. Du kan sedan konvertera att till vilken tidszon du vill senare, men att registrera UTC-tiden är nästan alltid den korrekta metoden.

Dessutom kan du göra detta tydligare genom att använda UtcNow till att börja med. På så sätt är det mer uppenbart att du inte försöker få en "lokal" tid.

Om man tittar på MongoDB-dokumentationen verkar det som om den interna representationen helt enkelt är ett antal millisekunder sedan Unix-epoken - så återigen, det har ingen indikation på tidszon eller en förskjutning mellan UTC och lokal tid. Om du vill lagra ett värde som kan konverteras tillbaka till den lokala tid du såg när det spelades in (även om du är nu i en annan tidszon) bör du lagra ett tidszons-ID och/eller UTC-offset som ett separat värde. Det behövs inte så ofta, men det är ett alternativ.



  1. mongodb-fråga utan fältnamn

  2. Spela 2.0 och MongoDB i gränssnitt med Salat

  3. DIY Cloud Database on Amazon Web Services - New Whitepaper

  4. Skapa en databas i Mongo:kan inte ansluta, det gick inte att ansluta