몽고디비 _id 값을 서버에서 내려주면 아이폰과 안드로이드에서 Date 변환하는 방법
보통 서버에서 서비스를 만들때 몽고디비를 많이 사용합니다.
이때 _id 는 날짜와 시간을 기반으로 생성됩니다.
ObjectId("62b47ff00000000000000000")
몽고디비 쉘에서는 getTimestamp() 로 날짜와 시간을 가져올 수 있습니다.
서비스에서 ObjectId 방식으로 데이터를 내리고
모바일(아이폰 및 안드로이드)에서 날짜를 변환해서 사용하는 방법을 소개하고자 합니다.
먼저 아이폰에서 사용할 스위프트용 함수입니다.
func ObjectIdToDate(id: String) -> Date {
var resultDate = Date()
let endIdx: String.Index = id.index(id.startIndex, offsetBy: 7)
let hex = id[id.startIndex...endIdx]
if let offset = UInt32(hex, radix: 16) {
resultDate = Date(timeIntervalSince1970: TimeInterval(offset))
}
return resultDate
}
안드로이드에서 사용할 자바 메소드입니다.
public Date ObjectIdToDate(String id) {
String hex = id.substring(0, 8);
Long x = Long.parseLong(hex, 16) * 1000;
return new Date(x);
}
이런식으로 공통 함수를 만들어 사용하면 편합니다.
댓글
댓글 쓰기