sql >> Base de Datos >  >> NoSQL >> MongoDB

Corregir insertar DateTime de c# a mongodb

Creo que te estás confundiendo con las zonas horarias. El Z al final de la cadena indica que está en UTC. Cuando publicaste esta pregunta, era justo después de las 15:30 UTC.

Sospecho firmemente que se está registrando el instante correcto en el tiempo, pero se está registrando como un instante en el tiempo sin referencia a una zona horaria en particular. A continuación, puede convertir eso a la zona horaria que desee más adelante, pero registrar la hora UTC casi siempre es el enfoque correcto.

Aparte, puede aclarar esto usando UtcNow para empezar. De esa manera, es más obvio que no está tratando de obtener una hora "local".

Mirando la documentación de MongoDB, parece que la representación interna es simplemente una cantidad de milisegundos desde la época de Unix, por lo que nuevamente, eso no tiene indicación de zona horaria o un desplazamiento entre UTC y la hora local. Si desea almacenar un valor que se puede volver a convertir a la hora local que vio cuando se grabó (incluso si está ahora en una zona horaria diferente), debe almacenar un ID de zona horaria y/o el desplazamiento UTC como un valor separado. Eso no es muy necesario, pero es una opción.