1. UTC(Universal Time, Coordinated)
1) 정의
- 세슘 원자 진동수 기반의 표준시, 협정 세계시
- GMT가 조금씩 늦어지는 지구 자전의 영향을 받기 때문에 새로 재정된 표준시입니다.
2) UTC와 비교되는 GMT(Greenwich Mean TIme)란?
- GMT 런던 외곽에 있는 그리니치 천문대를 기준으로 하는 평균 태양시로, 그리니치 표준시라고 부릅니다.
그리니치 천문대가 경도 0에 위치해 있기 때문에 이를 기준으로 한 것인데, 1925년 2월 5일부터 1972년 1월 1일
까지 세계 표준시로 사용되었습니다.
3) UTC와 GMT 차이점
- UTC와 GMT는 초의 소숫점 단위에서만 차이가 납니다.
2. Unix Time (=Epoch Time)
1) 정의
- UTC 시간 1970년 1월 1일 00:00 부터 현재 까지의 시간을 초로 환산 한 값입니다.
- 1970년 1월 1일 00:00 은 0 입니다.
2) Unix Time 구하는 방법
#include <iostream>
int main()
{
time_t unix_time = time(NULL);
std::cout << unix_time << std::endl; // unix_time
}
3. UTC time
1) 정의
- UTC기준 현재 시간
2) UTC Time을 구하는 방법
- gmtime_r()을 사용하여 구합니다.
#include <iostreaem>
#include <sys/timeb.h>
#include <time.h>
int main() {
time_t t = time(NULL);
if (nullptr != gmtime_r(&t, &tstruct)) {
strftime(buf, sizeof(buf), "%Y-%m-%d %T", &tstruct);
oss << buf; // 연-월-일-시-분-초
std::cout << oss.str() << std::endl;
}
return 0;
}
4. Localtime
1) 정의
- UTC기준 나라 별 시간
2) Local Time을 구하는 방법
- localtime_r() 을 사용하여 구합니다.
#include <iostreaem>
#include <sys/timeb.h>
#include <time.h>
int main() {
time_t t = time(NULL);
if (nullptr != localtime_r(&t, &tstruct)) {
strftime(buf, sizeof(buf), "%Y-%m-%d %T", &tstruct);
oss << buf; // 연-월-일-시-분-초
std::cout << oss.str() << std::endl;
}
return 0;
}
5. 번외
1) Localtime_r과 gmtime_r에 대한 추가 적인 설명
- [Multi thread] Multi thread 에서 localtime 문제
참조 싸이트
http://www.cplusplus.com/reference/ctime/gmtime/
https://graceman.tistory.com/2835075
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
[bash script] 유용한 bash 스크립트 모음 (0) | 2021.06.07 |
---|---|
[cross-platform] ld-linux-x86-64.so 란 (0) | 2020.11.03 |
[tmux] 1. tmux 개념 및 설치 및 설정 변경 ~/.tmux.conf (0) | 2020.04.04 |
[Multi thread] Multi thread 에서 localtime 문제 (0) | 2020.01.31 |
[Linux Tip] 리눅스 꿀 Tip 모음 (0) | 2019.11.29 |