MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Inserisci correttamente DateTime da c# a mongodb

Penso che ti stai confondendo con i fusi orari. La Z alla fine della stringa indica che è in UTC. Quando hai pubblicato questa domanda, erano appena passate le 15:30 UTC.

Sospetto fortemente che venga registrato l'istante corretto nel tempo, ma viene registrato come un istante nel tempo senza riferimento a un particolare fuso orario. Puoi quindi convertire che in qualsiasi fuso orario desideri in seguito, ma registrare l'ora UTC è quasi sempre l'approccio corretto.

Per inciso, puoi renderlo più chiaro utilizzando UtcNow iniziare con. In questo modo è più ovvio che non stai cercando di ottenere un'ora "locale".

Guardando la documentazione di MongoDB, sembra che la rappresentazione interna sia semplicemente un numero di millisecondi dall'epoca di Unix, quindi, ancora una volta, non ha alcuna indicazione del fuso orario o uno spostamento tra UTC e ora locale. Se desideri memorizzare un valore che può essere riconvertito nell'ora locale che hai visto quando è stato registrato (anche se sei adesso in un fuso orario diverso) è necessario memorizzare un ID fuso orario e/o l'offset UTC come valore separato. Non è necessario molto spesso, ma è un'opzione.