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

}


이런식으로 공통 함수를 만들어 사용하면 편합니다.




댓글

이 블로그의 인기 게시물

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

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

VCC 와 GND 는 무엇일까?