2011-05-13 1 views
3

MongoDB에서 가져온 날짜에 "T"와 "Z"를 가져와 JSON으로 변환하는 이유는 무엇입니까? 레일즈 3?MongoDB의 날짜가 "date"로 인쇄됩니다. "2011-05-12T13 : 51 : 33Z"

"date":"2011-05-12T13:51:33Z" 

감사

가져 오기 :

@bs = coll.find("headers.from" => email, "date" => {"$gte" => initial_date, "$lte" => Time.now.utc}) 

삽입 :

date : { type: Date, default: Date.now } 
+0

형식이 ISO8601 인 것처럼 보입니다. 삽입 및 가져 오기 코드는 어떻게 생겼습니까? –

+0

@Douglas는 해당 정보로 업데이트했습니다. – Donald

답변

3

는 그것은 ISO8601 형식의 날짜입니다. 'T'는 날짜와 시간을 구분하며 'Z'는 날짜가 UTC (GMT)임을 나타냅니다. MongoDB는 Date (only) 타입을 지원하지 않고, 모든 것이 타임 스탬프로 변환됩니다.

mongo 콘솔에 들어가서 날짜 (및 시간) 필드가 ISODate ("2011-05-12T13 : 51 : 33Z")로 저장되는 쿼리를 실행할 수 있습니다.

+0

.to_json을 변환하면 문제가 없습니다. .JSON 파일을 읽을 때 날짜가 맞을까요? 감사합니다 – Donald

+0

Mongo는 BSON이라는 JSON 형식으로 자동으로 Mongo의 콘솔에서 JSON을 사용하므로 루비 앱에서 JSON으로 변환하면 문제가 없습니다. 한 가지 기억해야 할 점은 UTC가 있기 때문에 앱의 현지 시간으로 변환해야한다는 것입니다. –