C++에서는 시스템의 요일, 날짜, 시간을 사람이 읽기 쉬운 형태(Human Readable Format)로 출력하는 다양한 방법이 있습니다. 이 글에서는 대표적인 세 가지 방법을 예제 코드와 함께 살펴보겠습니다.
첫 번째 방법: time(), localtime(), asctime() 사용
각 함수의 역할은 다음과 같습니다.
time() − 현재 캘린더 시간(달력 기준 시간)을 구하는 함수로, 시간을 저장하는 산술 데이터 타입(time_t)을 반환합니다.
localtime() − time_t 값을 받아 날짜와 시간 정보를 담고 있는 tm 구조체를 채워줍니다.
asctime() − localtime()으로 얻은 지역 시간을 사람이 읽을 수 있는 문자열 형식으로 변환합니다.
출력되는 형식은 다음과 같습니다.
요일 월 일 시:분:초 연도
예제 코드
#include<iostream>
#include<ctime> // 날짜와 시간을 다루기 위해 사용
using namespace std;
int main() {
time_t t; // time() 함수의 인자로 전달될 변수 t
struct tm * tt; // localtime()용 변수 선언
time (&t); // time() 함수에 인자 전달
tt = localtime(&t);
cout << "Current Day, Date and Time is = "<< asctime(tt);
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Current Day, Date and Time is = Tue Jul 23 19:05:50 2019
두 번째 방법: chrono 라이브러리 사용
chrono 라이브러리는 초(second), 밀리초(millisecond), 마이크로초(microsecond), 나노초(nanosecond) 단위로 경과 시간을 측정할 때 주로 사용되며, 이를 활용해 현재 시스템 시간도 손쉽게 얻을 수 있습니다.
예제 코드
#include <chrono>
#include <ctime>
#include <iostream>
using namespace std;
int main() {
auto givemetime = chrono::system_clock::to_time_t(chrono::system_clock::now());
cout << ctime(&givemetime) << endl;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Tue Jul 23 19:05:50 2019
세 번째 방법: ctime() 함수 사용
C 스타일의 표준 입출력 함수를 사용하는 방식으로, time(NULL)로 현재 시간을 얻은 후 ctime() 함수를 통해 바로 읽기 쉬운 문자열로 변환할 수 있습니다.
예제 코드
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main() {
time_t givemetime = time(NULL);
printf("%s", ctime(&givemetime)); // ctime()은 주어진 시간을 반환
return 0;
}실행 결과
위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.
Tue Jul 23 20:14:42 2019
마무리
세 가지 방법 모두 C++에서 시스템 시간을 손쉽게 확인할 수 있는 유용한 방법입니다. 간단한 출력에는 ctime()이나 asctime()이 적합하고, 정밀한 시간 측정이나 현대적인 C++ 스타일을 원한다면 chrono 라이브러리를 사용하는 것이 좋습니다.