C++ 프로그래밍에서 현재 날짜와 시간을 확인해야 하는 경우가 자주 있습니다. 이 글에서는 표준 라이브러리의 time()과 ctime() 함수를 활용해 현재 로컬 날짜와 시간을 손쉽게 얻는 방법을 예제와 함께 살펴보겠습니다.
예제 코드
#include <iostream>
using namespace std;
int main() {
time_t now = time(0);
char *date = ctime(&now);
cout << "현재 로컬 날짜와 시간 : " << date << endl;
return 0;
}실행 결과
위 코드를 컴파일하고 실행하면 다음과 같은 결과가 출력됩니다.
현재 로컬 날짜와 시간 : Wed Oct 3 08:35:24 2018
코드 설명
핵심 로직은 main() 함수 안에 있습니다. 먼저 time_t 타입의 변수 now를 선언하고, 내장 함수인 time()을 호출하여 현재 시스템의 로컬 시간 정보를 가져옵니다.
time_t now = time(0); char *date = ctime(&now);
time() 함수는 1970년 1월 1일(UTC 기준)부터 경과한 초 단위의 시간을 반환하며, 이 값은 사람이 읽기 어려운 숫자 형태입니다. 따라서 ctime() 함수를 사용해 이 값을 "Wed Oct 3 08:35:24 2018"처럼 읽기 쉬운 문자열 형태로 변환합니다.
참고: 더 정밀한 시간 처리가 필요하다면
날짜와 시간을 연도, 월, 일 등 개별 요소로 분리하거나 밀리초 단위의 정밀한 측정이 필요하다면, C++11부터 도입된 <chrono> 라이브러리나 localtime() 함수를 활용하는 것이 좋습니다. localtime()은 tm 구조체에 연도, 월, 일, 시, 분, 초를 각각 담아주므로 원하는 형식으로 자유롭게 가공할 수 있습니다.