개발/개발관련

[개발관련] 컴퓨터의 시간_ GMT,UTC

mabb 2023. 3. 13. 14:26
반응형

개인 공부 내용이므로 잘못된 부분이 있을 수 있습니다. 그럴 경우 댓글로 알려주시면 감사하겠습니다.
====================================================

1.시간의 종류

:시간은 천문학을 기반으로 한 시간과 원자시계를 기반으로한 시간이 있다.
1) GMT(Greenwich Mean Time)
:그리니치 평균시
영국 그리니치 천문대를 기준으로한 천문학 기반의 태양 시간이다.
UTC와는 초의 소수점 단위의 차이가 있어 일상에서는 UTC와 GMT의 용어를 혼용하여
사용하는 경우가 많다.
GMT가 일반적인 용어라면 UT(Universal Time)을 과학적인 용어로 사용하기도 한다.
2) UTC(Coordinated Universal Time)
:협정 세계시
EPOCH로부터 원자 시계를 기반으로 밀리초 단위로 계산한 시간이다. 국제원자시와 윤초보정을 기반으로 표준화되었다.
이러한 시간들, GMT와 UTC의 기준점은  영국의 그리니치 천문대를 기준으로 한다.  경도 0도
우리나라 표준시 경선 135도
1시간 =15도 , 135도 차이 =9시간
KST(Korea Standard Time)를
UTC + 09:00
GMT + 9
로 표현하는데 이는 24* 경도 / 360 로 계산하며 UTC와의 시차로 LocalTime을
정의한다. (Timezone)
*여기서 윤초란?
하루는 60 * 60 * 24 = 86,400초로 표현한다. 하지만 현실에서는
1~2년에 한 번 실제 시간과 86,400초에 1초의 차이가 발생한다.
자전 변화 등으로 실제로는 차이가 있는 것. 이 차이를 윤초라고 한다.
불규칙한 자전변화로 윤초를 예측하는 것은 어렵다.

2. 컴퓨터 시스템의 시간

: EPOCH 로부터 틱수를 카운트하는 시스템 클록에 의해 측정된다.
1970년 1월 1일 00:00:00 (에포크) 로부터 몇 초가 흘렀는지 측정하여 환산하는 것이다.
몇 초가 흘렀는지 파악하고 이를 이용하여 60* 60 * 24 = 86,400초 를 기준으로 날짜를
역산하는 것으로 보인다. 단 이렇게 계산을 할 때 윤초를 반영하지 않는다면 날짜에는
오차가 생길 것이다.
1)Window OS의 시간
:Windows Server 2019 및 Windows 10 2018년 10월 업데이트 플랫폼에서 윤초를 지원합니다. 그러나 이 문서는 이러한 운영 체제 이상에 엄격하게 적용되지 않습니다. 자세한 내용은 다음 항목을 참조하세요.
윤초는 1초 조정으로, 일 중 시간을 평균 태양 시간(UT1)에 가깝게 유지하기 위해 UTC에 가끔 적용됩니다. Windows Server 2019 및 Windows 10 2018년 10월 업데이트 플랫폼에서 윤초를 지원합니다
-> 윈도우는 자체 timeserver로 시간을 동기화 한다. 2018년 windows 10부터 윤초를 지원한다고 한다.
2)Unix time
:에포크로부터 경과시간을 초로 환산하여 정수로 나타내며 윤초는 무시한다. 에포크타임을 사용하는것. 대다수의 유닉스 운영체제에서 사용한다. 윤초로 인한 문제가 발생할 수 있다.
*java에서의 시간
"컴퓨터 시간" 과 UTC 사이에 불일치가 발생할 수 있다. java.Date는 윤초를 보정해주지 않았다.
자바8에서 등장한 java.time 은 에포크 경과시간을 나노초 단위로 표현한다. 이를 UTC+0 영국기준으로 반환하기 때문에 LocalDateTime을 이용한다. LocalDateTime은 PC의 날짜와 시간을 반환한다. PC의 시간이므로 OS의 영향을 받을 것으로 보인다.



반응형