Namespaces
Variants

tm

From cppreference.net
헤더 파일에 정의됨 <time.h>
struct tm ;

달력 날짜와 시간을 구성 요소별로 분해하여 보관하는 구조체입니다.

목차

멤버 객체

int tm_sec
분 이후의 초 – [ 0 , 61 ] (C99 이전) [ 0 , 60 ] (C99 이후) [각주 1]
(public member object)
int tm_min
시 이후의 분 – [ 0 , 59 ]
(public member object)
int tm_hour
자정 이후의 시간 – [ 0 , 23 ]
(public member object)
int tm_mday
월의 일 – [ 1 , 31 ]
(public member object)
int tm_mon
1월 이후의 월 – [ 0 , 11 ]
(public member object)
int tm_year
1900년 이후의 연수
(public member object)
int tm_wday
일요일 이후의 일수 – [ 0 , 6 ]
(public member object)
int tm_yday
1월 1일 이후의 일수 – [ 0 , 365 ]
(public member object)
int tm_isdst
서머타임 플래그. 값이 양수이면 서머타임이 적용 중임, 0이면 적용되지 않음, 음수이면 정보를 사용할 수 없음
(public member object)
참고 사항

표준은 앞서 언급된 멤버들만 순서에 상관없이 존재하도록 규정합니다. 구현체들은 일반적으로 이 구조체에 더 많은 데이터 멤버를 추가합니다.

  1. 범위는 양의 윤초를 허용합니다. 같은 분 내에서 두 개의 윤초는 허용되지 않습니다 (C89 범위 0..61은 결함이었음)

예제

#include <stdio.h>
#include <time.h>
int main(void)
{
    struct tm start = {.tm_year = 2022 - 1900, .tm_mday = 1};
    mktime(&start);
    printf("%s", asctime(&start)); // note implicit trailing '\n'
}

출력:

Sat Jan  1 00:00:00 2022

참고문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.27.1/3 시간 구성 요소 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.27.1/3 시간 구성 요소 (p: 284)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.27.1/3 시간 구성 요소 (p: 388)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.23.1/3 시간 구성 요소 (p: 338)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.12.1 시간 구성 요소

참고 항목

epoch 이후 시간을 현지 시간으로 표현된 달력 시간으로 변환
(함수)
epoch 이후 시간을 협정 세계시(UTC)로 표현된 달력 시간으로 변환
(함수)