반응형
strptime(3)
#include <time.h>
char *strptime(const char *s, const char *format, struct tm *tm);
strptime(3)은 format에 정의된 형태의 문자열을 parsing하여 struct tm으로 변환하는 함수입니다.
파라미터
s
- format된 시간에 대한 문자열 - input
format
- 시간정보에 대한 format정보. format정보는 %문자로 구분합니다.
%a : 현재 locale의 약자 요일(week) 문자열 ex). SUN
%A : 현재 locale의 full 요일(week) 문자열 ex). Sunday
%b : 현재 locale의 약자 월(달) 문자열 ex). JAN
%B : 현재 locale의 full 월(달) 문자열 ex). January
%c : 현재 locale의 full 일시 정보 ex). Mon Jan 30 16:08:19 2017
%C : 현재 locale의 세기(century) 정보 year / 100값 ex). 20
%d : 현재 locale의 일자(day) 정보 ex). 01 ~ 31
%D : 현재 locale의 날짜(2자리 년도)정보 %m/%d/%y ex). 01/30/17
%e : 현재 locale의 일자(day) 정보, %d와 비슷하나 1~9앞에는 space가 붙음 ex). 1~31
%Ec : %c와 같음
%Ex : %x와 같음
%EX : %X와 같음
%Ey : y와 같음
%EY : %Y와 같음
%F : %Y-%m-%d format 예). 2017-01-30
%G : %Y와 같음. 4자리 년도 ex). 2017
%g : 2자리 년도. ex). 17
%h : %b와 같음. 현재 locale의 약자 월(달) 문자열 ex). JAN
%H : 00~23까지의 시간
%I : 01~12까지의 시간
%j : 001 ~ 366까지의 1월 1일부터 현재까지의 날 수
%k : [ 0] ~ [23]까지의 시간. 0 ~ 9까지는 앞에 스페이스 붙음. ex). 9
%l : [ 1] ~ [12]까지의 시간. 0 ~ 9까지는 앞에 스페이스 붙음. ex). 9
%m : 01 ~ 12까지의 월(month)
%M : 00 ~ 59까지의 분 Minute
%n : new line
%Od : %d와 같음
%Oe : %e와 같음
%OH : %H와 같음
%OI : %I와 같음
%Om : %m과 같음
%OM : %M과 같음
%OS : %S와 같음
%Ou : %u와 같음
%OU : %U와 같음
%OV : %V와 같음
%Ow : %w와 같음
%OW : %W와 같음
%Oy : %y와 같음
%p: AM/PM 구분
%P: am/pm 구분
%r: %I:%M:%S %P format의 문자열 ex). 04:05:16 PM
%R: %H:%M format의 시분 문자열 ex). 16:05
%s: 1970-01-01 00:00:00 +0000(UTC) 기준의 초(seconds)
%S: 00 ~ 60까지의 초
%t: tab문자
%T: %H:%M:%S 형태의 24시간 format 문자열. %X와 같음. ex). 16:05:10
%u: 1~7까지의 요일정보 %w는 0 ~ 6까지의 요일정보
%U: 0~53까지의 그 해의 몇번째 주(week)
%V: 1 ~ 53까지의 그 해의 몇번째 주(week). 시작 주(week)가 4일 이상인 주부터 1이 됨.
%w: 0 ~ 6까지의 요일정보 0은 일요일
%W: 00 ~ 53 까지의 그 해의 주정보 01은 처음으로 월요일이 있는 주
%x: %m/%d/%g format(mm/dd/yy) 형태의 날짜 ex). 01/30/17
%X: %H:%M:%S 형태의 24시간 format 문자열. %T와 같음. ex). 16:05:10
%y: 00 ~ 99까지의 2자리 년도
%Y: 4자리 년도
%z: +hhmm 또는 -hhmm의 time zone 표시
%Z: timezone명 ex). KST
%%: %문자 출력
tm
- 변환될 시간 정보를 저장할 구조체(struct tm) - output
RETURN
NULL 아님
- 마지막으로 parsing된 format 다음 글자.
끝의 format까지 끝났다면, 문자열의 끝인 null byte를 가리키는 pointer
NULL
- 오류가 발생하였습니다.
see also : 시간 관련 함수
반응형
'C언어 header > time.h' 카테고리의 다른 글
nanosleep(2) - 설정된 nano초(nanosecond: 10억분의 1초) 동안 대기 (0) | 2019.09.30 |
---|---|
strftime(3) - struct tm을 format된 문자열로 변환 (0) | 2019.09.30 |
mktime(3) - struct tm를 time_t로 변환 (0) | 2019.09.30 |
asctime_r(3) - struct tm 구조체를 날짜 및 시간 표시 문자열로 변환(thread-safe) (0) | 2019.09.30 |
asctime(3) - struct tm 구조체를 날짜 및 시간 표시 문자열로 변환 (1) | 2019.09.30 |