iOS5 와 iOS6에서의 Date Formatter

프로젝트를 진행하다가 발견된 문제로 일단 기록에 남기기 위해 급하게 써봅니다.
진행 중인 프로젝트에서 DATE를 받아서 처리하는 부분이 꽤 많은데 서버에서 넘겨받은 DATE 문자열이 “2012-10-31T18:00+09:00“이라고 했을 때

이 포맷은 ISO8601에도 명시되어 있는 포맷이 맞음에도 불구하고 붉은색 문자의 처리가 iOS5와 iOS6에서 다름을 알게 되었습니다.

즉, NSDateFormatter를 이용하여 date format을 정의할 때

iOS6에서는 ‘yyyy-MM-dd’T’HH:mmZZZZ’ 으로 정의하면 제대로 파싱이 되지만,
iOS5에서는 (null)로 처리되는 문제가 있었습니다.

iOS5에서 따로 처리를 해주는 것이 있는지는 조사를 좀 더 해봐야 알 수 있겠지만 현재로서는 이 문제 하나 때문에 critical bug가 되어버린 상황이네요…
급한대로 마지막 ZZZZ에서의 세미콜론이 있으면 세미콜론을 무시하는 코드로 적용했지만 꺼림직한 것은 사실이네요.
추후 부가정보를 찾아보고 포스팅을 업데이트 하겠습니다.

혹여 이에 대한 정보를 가지고 계신 분 계시다면 댓글로 가르침 부탁드립니다.

0 Shares:
2 comments
  1. datefromstring 함수도 iso5와 ios6에서 차이가 있는거 같더군요.
    유니코드 버전을 ios6에서는 tr35-25로, ios5에서는 tr35-19를 사용해서 그렇다고 하던데…전 잘 모르겠네요.
    저도 꼼수로 풀고 있습니다.

    1. 유니코드 버전보다는 ISO8601 스펙을 더 타이트하게 적용한게 아닐까 의심해보고 있어요. ㅎ
      상황 닥치지 않으면 크리티컬한 이슈는 아니니.. 하지만 이 문제 때문에 괜히 string 처리한 것도 괜히 찝찝하긴 하네요 🙂
      방법 없을 때는 꼼수가 최고죠 ㅋ

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.

You May Also Like

iOS6에서 다시 태어난 UUID!

iOS5부터 deprecated된 기기의 UDID를 가져오는 메소드 때문에 골머리 썩고 있는 업체가 많은 것으로 알고 있다. 사실 나부터 이것…

Apple Tech Talk 2011 in Seoul 참관기

지난 목요일 (2011.12.08) 애플 본사에서 주최한 Tech Talk 2011 in Seoul 행사가 킨텍스에서 진행되었습니다. 많은 지원자 가운데 초대된…

AFNetworking 2.x 와 iOS6

AFNetworking은 Server-Client 개발 시 많이 사용하는 오픈소스입니다. Connection 세션관리부터 iOS7에서 새로이 추가된 Task 개념까지 충실히 지원하고 있으며 현재도…