728x90
전 세계에서 사용하는 프로그램을 개발할 때 시간이 관련된 작업을 하게 될 것이다.
이때 Local Time으로 시간 계산을 하게되면 나라마다의 시차를 계산하기 어려워진다.
그렇기 때문에 UTC(Coordinated Universal Time 협정 세계시)를 이용하여 시간을 계산하게 된다
- 영국 : UTC+0.00 (Greenwich Mean Time, GMT)
- 한국 : UTC+9.00
- 뉴욕 : UTC-5.00
...
이렇듯 각 나라마다 시간 계산을 해줘야하는데, 드디어 C++20에서 지원해주게 되었다.
using namespace std;
using namespace std::chrono;
auto utcTime :: system_clock::now();
cout << utcTime << endl;
auto localTime = zoned_time(current_zone(), utcTime);
cout << localTime << endl;
auto localTime2 = zoned_time("Asia/Shanghai"s, utcTime);
cout << localTime2 << endl;
추가로 유닉스 시간이라는 개념에 대해서 알아둬야한다.
유닉스 시간(Unix Time)은 시각을 나타내는 방식이고, POSIX, Epoch 시간이라고도 부른다.
1970년 1월 1일 00:00:00 협정 세계시(UTC) 부터의 경과 시간을 초로 환산하여 정수로 나타낸 것이다.
using namespace std;
using namespace std::chrono;
auto utcTime = system_clock::now();
int64_t hoursSinceUtc = duration<hours>(utcTime.time_since_epoch()).count();
int64_t utcEpoch = duration<seconds>(utcTime.time_since_epoch()).count();
728x90
'Basic Programming > C++ 20' 카테고리의 다른 글
C++20 - jthread (0) | 2024.01.21 |
---|---|
C++20 - format (0) | 2024.01.20 |
C++20 - Calendar (0) | 2024.01.17 |
C++20 - 비트연산 (0) | 2024.01.17 |
C++20 - erase, erase_if (1) | 2023.12.29 |