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

C 언어 time.h 라이브러리 함수로 현재 날짜와 시간 출력하기


문제 상황

C 프로그래밍 언어를 사용하여 현재 날짜와 시간을 ISO 표준 형식으로 화면에 출력하려면 어떻게 해야 할까요?

해결 방법

시스템으로부터 현재 날짜와 시간을 가져온 뒤, 이를 ISO 형식으로 변환하여 출력하는 프로그램을 작성할 수 있습니다.

예를 들어 다음과 같은 형식으로 출력됩니다.

2020년 12월 15일 월요일 오후 10시 50분

이 프로그램에서 사용되는 주요 내장 함수는 다음과 같습니다.

time() − 현재 시간을 반환합니다.

strftime() − 시간 정보를 문자열 형태로 변환합니다. 이 함수는 time.h 헤더 파일에 포함되어 있습니다.

형식 지정자 설명

strftime() 함수에서 사용한 형식 지정자의 의미는 다음과 같습니다.

  • %a : 요일의 축약형 이름 (예: Thu)
  • %d : 일(날짜)
  • %b : 월의 축약형 이름 (예: Dec)
  • %y : 두 자리 연도
  • %H:%M : 시:분 (24시간제)

예제 코드

#include<stdio.h>
#include<time.h>
int main(){
    time_t current = time(NULL);
    char datetime[20];
    strftime(datetime,sizeof(datetime),"%a,%d%b%y %H:%M",localtime(&current));
    puts(datetime);
    return 0;
}

코드 설명

time(NULL) 함수를 호출하여 현재 시스템 시간을 time_t 타입 변수 current에 저장합니다. localtime() 함수로 이 값을 지역 시간 구조체로 변환한 후, strftime() 함수가 지정한 형식 문자열에 맞춰 datetime 배열에 결과를 저장합니다. 마지막으로 puts() 함수를 통해 변환된 날짜와 시간을 화면에 출력합니다.

실행 결과

Thu,31 Dec 20 22:41