Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ ctime() 함수 완벽 가이드: 시간을 문자열로 변환하기

C 표준 라이브러리의 char *ctime(const time_t *timer) 함수는 인자로 전달된 타이머 값을 기반으로 현지 시간(local time)을 나타내는 문자열을 반환합니다.

반환되는 문자열은 다음과 같은 형식을 따릅니다 — Www Mmm dd hh:mm:ss yyyy. 각 부분의 의미는 아래와 같습니다.

  • Www : 요일 (예: Thu, Fri)
  • Mmm : 월 이름 (예: May, Jun)
  • dd : 일 (날짜)
  • hh:mm:ss : 시:분:초
  • yyyy : 연도

함수 문법

ctime() 함수의 기본 문법은 다음과 같습니다.

char *ctime(const time_t *timer)

이 함수는 캘린더 시간(calendar time)이 담겨 있는 time_t 타입 변수에 대한 포인터를 인자로 받습니다. 그리고 사람이 읽기 쉬운(human-readable) 형식으로 날짜와 시간 정보가 포함된 문자열을 반환합니다.

사용 예제

다음 예제는 현재 시간을 구한 뒤, ctime() 함수를 사용해 문자열로 출력하는 방법을 보여줍니다.

#include <stdio.h>
#include <time.h>
int main () {
    time_t curtime;
    time(&curtime);
    printf("Current time = %s", ctime(&curtime));
    return(0);
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Current time = Thu May 23 17:18:43 2019

참고 사항

ctime() 함수는 내부적으로 반환된 문자열을 정적(static) 버퍼에 저장하므로, 함수를 여러 번 호출하면 이전에 반환된 문자열이 덮어쓰여질 수 있습니다. 따라서 여러 시간 값을 동시에 보관해야 하는 경우에는 각 문자열을 별도로 복사해서 사용하는 것이 안전합니다. 또한 스레드 환경에서는 재진입(reentrant) 가능한 ctime_r() 함수를 사용하는 것이 권장됩니다.