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.