[c++] 시간대 변환 처리
C++ 프로그램에서 시간대 변환을 처리하는 방법에 대해 알아보겠습니다.
<chrono>
라이브러리 사용
C++ 11부터 <chrono>
라이브러리를 사용하여 시간을 다룰 수 있습니다. 다음 예제는 시간대 변환을 처리하는 방법을 보여줍니다.
#include <iostream>
#include <chrono>
#include <ctime>
int main() {
// 현재 시간 획득
auto now = std::chrono::system_clock::now();
// 시간대 변환
auto tp = std::chrono::system_clock::to_time_t(now);
auto localTime = *std::localtime(&tp);
std::cout << "Local time: " << std::put_time(&localTime, "%F %T") << std::endl;
// 다른 시간대로 변환
std::chrono::time_point<std::chrono::system_clock, std::chrono::hours>
newTime = std::chrono::time_point_cast<std::chrono::hours>(now) + std::chrono::hours(8);
auto newTp = std::chrono::system_clock::to_time_t(newTime);
auto newLocalTime = *std::localtime(&newTp);
std::cout << "Converted time: " << std::put_time(&newLocalTime, "%F %T") << std::endl;
return 0;
}
위 코드는 <chrono>
라이브러리를 사용하여 현재 시간을 획득하고, 이를 로컬 시간으로 변환하고 다른 시간대로 변환하는 방법을 보여줍니다.
boost 라이브러리 사용
다른 방법으로는 boost 라이브러리를 사용하여 시간대 변환을 처리할 수 있습니다. boost
라이브러리는 다양한 시간 처리에 유용한 기능을 제공합니다.
#include <iostream>
#include <boost/date_time.hpp>
int main() {
using namespace boost::posix_time;
// 현재 시간 획득
ptime now = second_clock::local_time();
std::cout << "Local time: " << now << std::endl;
// 시간대 변환
ptime newTime = now + hours(8);
std::cout << "Converted time: " << newTime << std::endl;
return 0;
}
위 코드는 boost 라이브러리를 사용하여 현재 시간을 획득하고, 이를 로컬 시간으로 변환하고 다른 시간대로 변환하는 방법을 보여줍니다.
결론
C++에서 시간대 변환을 처리하는 방법은 <chrono>
라이브러리나 boost 라이브러리를 사용하여 간단하게 구현할 수 있습니다. 이러한 라이브러리를 사용하면 시간대 변환에 관련된 복잡한 로직을 직접 작성할 필요가 없어 편리합니다.
더 많은 자세한 내용은 각 라이브러리의 공식 문서를 참고하시기 바랍니다.
C++ <chrono>
Library Reference