MongoDB ObjectId 에서 날짜 추출하는 방법(Swift & java)

 몽고디비의 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);
}

문자열 중 앞의 8자리가 유닉스 타임의 숫자이다.

서버에서 몽고디비의 _id 값을 Hex 코드로 내려 준다면 당황하지 말고 변환하여 사용하자.

앞의 4바이트가 시간이므로 이를 변환하면 된다.

unix epoch 이란 1970.1.1 부터 지나온 시간을 말한다.

대부분 서버에서 이 시간을 사용한다.

댓글

이 블로그의 인기 게시물

한글 2010 에서 Ctrl + F10 누르면 특수문자 안뜰 때

아이폰에서 RFID 사용하는 방법

VCC 와 GND 는 무엇일까?