100 – 형식 변환 함수

시간 정보를 여러 형식으로 변환할 수 있는데, localtime과 gmtime은 time_t 형 시간 정보를 struct tm형으로 변환한다. 이 형을 한번 살펴보자.

struct tm {
int tm_sec;           //초 (0~59)
int tm_min;         //분 (0~59)
int tm_hour;       //시간 (0~23)
int tm_mday;      //일 (1~31)
int tm_mon;        //월 (0~11)
int tm_year;        //연도(1990~)
int tm_wday;      //요일 (0~6)
int tm_yday;       //1월 1일 이후의 날짜
int tm_isdst;       //썸머타임(양수일 때 유효, 0일때 무효, 음수일 때 사용 불가)
}

  • 함수 이름 | 기능
  • localtime | time_t형 시간 정보를 struct tm형 지역 시간으로 변환한다.
  • gmtime  | time_t형  시간 정보를 struct tm형 세계 표준 시간으로 변환한다.

기능에 보면 시간 표기의 차이가 있다는 것을 볼 수 있다. 리눅스 설치 시에 지정한 로컬 타임존에 따라서 지역 시간으로 변환하느냐 아니면 글로벌 시간으로 변환하느냐의 차이다. 사용법은 아래의 예시를 확인하자.

스크린샷_2017-05-15_19-41-45

이와 반대로 struct tm 형 시간을 time_t형으로 변환하는 함수 또한 존재한다.

  • 함수 이름 | 기능
  • mktime | struct tm형 시간 정보를 time_t형으로 변환한다.

또한 struct tm형의 시간 정보를 사용자가 알아보기 쉽게 문자열로 변환해주는 함수 또한 존재한다. 기본적으로 제공되는 서식 형태로도 만들 수 있지만, 개발자가 직접 서식을 지정할 수 잇는 함수 또한 존재한다.

  • 함수 이름 | 기능
  • asctime | struct tm 형 시간 정보를 문자열로 변환한다.
  • strftime | struct tm형 시간 정보를 서식을 갖춘 시간 정보로 변환한다.

변환에 필요한 변환 형식은 변환 문자열을 확인하여 직접 작성하면 된다. 두 번째에 변환 포맷을 지정할 수 있고, 변환 문자열은 다음과 같다.

  • 변환 문자열 |  의미
  • %a | 요일 이름의 약자
  • %A | 요일 이름
  • %b | 월 이름의 약자
  • %B | 월 이름
  • %c | 지역 날짜와 시간
  • %d | 날짜
  • %H | 시간 (24시간)
  • %I | 시간 (12시간)
  • %j | 1월 1일 이후의 날짜
  • %m | 월
  • %M | 분
  • %p  | AM, PM
  • %S | 초
  • %w | 요일
  • %x | 지역 날짜
  • %X | 지역 시간
  • %y | 연도
  • %Y | 연도(4자리수)
  • %% | 퍼센트 기호

어기까지의 내용만 가지고 예제를 확인해보자. 함수 여럿 좀 써보겠다고 해서 자잘하게 해봤다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.