ISO 8601, Safari와 Chrome의 차이

Safari와 Chrome에서 날짜 처리가 다른 것은 알고 있었지만 ISO 8601 텍스트 처리가 다를 줄은 또 몰랐네요. 서버에서 받은 텍스트가 ISO8601 시간 텍스트를 문자로 받았고 new Date()로 생성 또는 Date.parse()한 결과가 둘이 다르게 해석됩니다. (아래 캡쳐 이미지는 위가 Chrome, 아래가 Safari)

Screen Shot 2019-06-21 at 9.11.40 AM

Screen Shot 2019-06-21 at 9.12.00 AM

Chrome에서는 ‘2018-04-16T00:00:00’ 시간에 대한 해석이 한국시간(GMT+0900) 기준의 2018년4월16일 00:00:00으로 해석하고 Safari에서는 2018년4월16일 00:00:00을 GMT+0000시간으로 계산한 다음에 한국시간(GMT+0900) 으로 보여지게 됩니다.

Screen Shot 2019-06-21 at 9.16.18 AM

Screen Shot 2019-06-21 at 9.16.49 AM

ISO8601의 타임존(TZD:Time zone Designator)를 직접 설정하게 되면 동일한 시간을 보여줍니다. 위에는 Zulu(GMT+0000)를 기준으로 입력하였고 아래는 한국시간(GMT+0900)으로 설정한 경우입니다.

Screen Shot 2019-06-21 at 9.20.37 AM

Screen Shot 2019-06-21 at 9.20.46 AM

참고자료 + 재미있게 읽은글: