IT 끄적이기/IT 지식

DB 와 웹 브라우저 상의 9시간 차이나는 현상

김팡 2022. 9. 15. 14:41

시간이 다른 문제도 있고 T와 Z 뭐야 ?
This is DATAFORMAT applied to the left column,          No DATAFORMAT was applied in the right column

개발을 하면서 DB상의 데이터와  웹서비스로 데이터를 가져왔을 때의 시간 

그리고 마지막 웹 브라우저에 띄워주기 이전에 Json 데이터를 봤을 때 시간이 모두 정상적으로 나오는데 

이상하게 웹 프론트엔드에 뿌려주면 시간이 자동으로 +9 시간이 되는 현상이 있었다 

결론적으로는 Json 데이터를 웹에 뿌려줄 때 영국 그리니치 천문대 시간을 기준으로 데이터를 인식 후 

웹 브라우저가 속한 Locale 에 따라서 자동으로 시간 계산을 해주는 것 같았다.

JSON
"2017-02-16T09:56:00Z"
- T는 날짜와 시간을 구분해주는 delimiter(구분자)이다. 그이외의 의미는 없다.
- 끝에 Z는 영국 그리니치 천문대 시간을 가르킨다(+00:00). 한국은 (+09:00)이다.
Z = Zulu time = GMT = UTC 다 같은말이다.

 

웹브라우저에서(JavaScript) UTC(영국) 시간을 가지고 왔으니 KTC(한국시간)시간으로 자동 계산 후 뿌려준다

솔루션은 다음과 같다.

1. 타임존 설정 바꾸기(웹 브라우저 혹은 PC)

2. JavaScript로 바꿔준다.

toLocaleString
Soap에서 받아온 데이터

#2017-02-16 09:56:00#
#0001-01-01 00:00:00#
DataJSON

"2017-02-16T09:56:00Z"
"0001-01-01"
WebService

2017-02-16T09:56:00
0001-01-01T00:00:00