MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Corrija a inserção de DateTime de c # para mongodb


Acho que você está se confundindo com os fusos horários. O Z no final da string indica que está em UTC. Quando você postou esta pergunta, era pouco depois das 15:30 UTC.

Eu suspeito fortemente que o instante correto no tempo está sendo gravado - mas está sendo registrado como um instante no tempo sem referência a um fuso horário específico. Você pode então converter isso para qualquer fuso horário que você quiser mais tarde, mas gravar a hora UTC é quase sempre a abordagem correta.

Além disso, você pode deixar isso mais claro usando UtcNow começar com. Dessa forma, fica mais óbvio que você não está tentando obter uma hora "local".

Olhando para a documentação do MongoDB, parece que a representação interna é simplesmente um número de milissegundos desde a época do Unix - então, novamente, isso não tem indicação de fuso horário ou deslocamento entre UTC e hora local. Se quiser guardar um valor que possa ser convertido para a hora local que viu quando foi gravado (mesmo se estiver agora em um fuso horário diferente), você deve armazenar um ID de fuso horário e/ou o deslocamento UTC como um valor separado. Isso não é necessário com muita frequência, mas é uma opção.