개발/C,C++
[TIME] UTC, KST
-=HaeJuK=-
2025. 2. 3. 15:51
반응형
C++에서 UTC ↔ KST 변환하는 방법
C++에서 현재 시간을 UTC(세계 협정시) 및 KST(한국 표준시, UTC+9)로 변환하는 방법을 정리합니다.
C++98 / C++03 (std::time)
UTC 시간 가져오기
#include <iostream>
#include <ctime>
int main() {
std::time_t now = std::time(nullptr);
std::tm* gmt = std::gmtime(&now);
std::cout << "UTC Time: "
<< (gmt->tm_year + 1900) << "-"
<< (gmt->tm_mon + 1) << "-"
<< gmt->tm_mday << " "
<< gmt->tm_hour << ":"
<< gmt->tm_min << ":"
<< gmt->tm_sec << std::endl;
return 0;
}
KST (한국 표준시) 가져오기
#include <iostream>
#include <ctime>
int main() {
std::time_t now = std::time(nullptr);
std::tm* kst = std::localtime(&now);
std::cout << "KST Time: "
<< (kst->tm_year + 1900) << "-"
<< (kst->tm_mon + 1) << "-"
<< kst->tm_mday << " "
<< kst->tm_hour << ":"
<< kst->tm_min << ":"
<< kst->tm_sec << std::endl;
return 0;
}
C++11 / C++14 / C++17 (std::chrono 활용)
UTC 시간 가져오기
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
auto now = std::chrono::system_clock::now();
std::time_t now_time = std::chrono::system_clock::to_time_t(now);
std::tm gmt_tm;
gmtime_s(&gmt_tm, &now_time);
std::cout << "UTC Time: "
<< gmt_tm.tm_hour << ":"
<< gmt_tm.tm_min << ":"
<< gmt_tm.tm_sec << std::endl;
return 0;
}
C++20 (std::chrono::zoned_time 활용)
#include <iostream>
#include <chrono>
int main() {
using namespace std::chrono;
auto now = system_clock::now();
std::cout << "UTC Time: " << zoned_time{"UTC", now} << std::endl;
std::cout << "KST Time: " << zoned_time{"Asia/Seoul", now} << std::endl;
return 0;
}
결론
C++ 버전 | UTC 가져오기 | KST 가져오기 | UTC ↔ KST 변환 |
---|---|---|---|
C++98 / C++03 | gmtime() |
localtime() |
+/- 9시간 |
C++11 / C++17 | std::chrono::system_clock |
localtime_s() |
+/- 9시간 |
C++20 | std::chrono::zoned_time |
std::chrono::zoned_time{"Asia/Seoul"} |
자동 변환 |
🚀 최신 C++20을 사용하면 std::chrono::zoned_time
을 활용해 더욱 직관적으로 UTC ↔ KST 변환이 가능합니다!
728x90