2013년 12월 11일 수요일

Mongodb Time 관련 얘기

몽고디비, C#


DateTime.Now -> 디비에 저장하면 Utc 라고 표준시간으로 저장이 됨
그래서 C# 에서 다시 데이터를 불러 들이면 doc["Now"] 처럼 Now 값과 다르게 됨
해결방법은 ToLocalTime()

예)
Now = {2013-12-11 오후 6:32:25}
{ "Now" : ISODate("2013-12-11T09:32:25.371Z") }
doc["Now"].ToUniversalTime() {2013-12-11 오전 9:32:25}
doc["Now"].ToUniversalTime().ToLocalTime() {2013-12-11 오후 6:32:25}


그리고 클라로 전달될때 아래와 같이 json 형식을 변경해서 전달하게 되면

"DateTime.Now": {
        "$date": 1386743878524
    }

클라에서 읽는 방법은 아래와 같이 변환을 하면 시간을 알 수 있음

new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc).AddMilliseconds(1386743878524).ToLocalTime()

댓글 없음:

댓글 쓰기