STRFTIME(3)

명칭
strftime - 일자와 시간을 포맷

프로그램 라이브러리
libc

서식
<time.h> size_t strftime(char *buf, size_t maxsize, const char *format, const struct tm *timeptr)

해설
strftime() 함수는, timeptr (으)로부터의 정보를 format 에 의해 가리켜지는 캐릭터 라인에 따라 버퍼 buf 에 포맷 합니다.

format 캐릭터 라인은, 0 이상의 변환 지정 및 통상의 캐릭터로부터 구성됩니다. 모든 통상 캐릭터는, 직접 버퍼에 카피됩니다. 변환 지정은, 퍼센트 기호 “‘%’” (와)과 이제(벌써) 1 개의 캐릭터로부터 구성됩니다.

배열에는 maxsize 개를 넘지 않는 캐릭터가 놓여집니다. 결과적으로 생기는 캐릭터의 총수가 종단의 눌 캐릭터를 포함해 maxsize (을)를 넘지 않는 경우는, strftime() (은)는 종단의 눌을 세지 말고 배열중의 캐릭터수를 돌려줍니다. 그 이외의 경우는 0 을 돌려주어, 버퍼의 내용은 부정이 됩니다.

변환 지정은, 이하에 나타내는 것 같은 형태로 전개한 후 버퍼에 카피됩니다 :

%A  각국의 표현으로 완전한 요일명으로 옮겨놓을 수 있습니다.

%a  각국의 표현으로 생략 한 요일명으로 옮겨놓을 수 있습니다. 여기서, 약칭은 최초의 3 캐릭터입니다.

%B  각국의 표현으로 완전한 월명으로 옮겨놓을 수 있습니다.

%b  각국의 표현으로 생략 한 월명으로 옮겨놓을 수 있습니다. 여기서, 약칭은 최초의 3 캐릭터입니다.

%C  (서기연 / 100)의 10 진수로 옮겨놓을 수 있습니다. 1 자리수의 숫자의 전에는 0 이 붙습니다.

%c  각국의 표현으로 시각과 일자로 옮겨놓을 수 있습니다 서식은 ctime(3) 하지만 생성하는 것과 같고,"%a %Ef %T %Y" 과 등가입니다. 이것은 또,"3+1+6+1+8+1+4" 의 출력 포맷을 의미합니다.

%D  “%m/%d/%y” (와)과 동등합니다.

%d  날을 나타내는 10 진수 (01-31)로 옮겨놓을 수 있습니다.

%E* %O*
    POSIX 의 지역 확장입니다. %Ec %EC %Ex %EX %Ey %EY %Od %Oe %OH %OI %Om %OM %OS %Ou %OU %OV %Ow %OW %Oy 그렇다고 하는 순차 순서는, 대체적인 표현을 주는 것이라고 보여집니다.

    더욱, %Ef 는 단축형의 달의 이름과 날을 나타내, 또 %EF 는 긴 형식의 달과 날을 나타내, 또 %OB 는 다른 형식의 달의 이름을 나타냅니다 (단독으로 사용해 일자는 지정하지 않습니다).

%e  날을 나타내는 10 진수 (1-31)로 옮겨놓을 수 있습니다. 1 자리수의 숫자의 전에는 공백이 붙습니다.

%G  백년기첨부의 해의 10 진수로 옮겨놓을 수 있습니다. 이 해는, 주의 대부분을 포함한 것이 됩니다 (월요일을 주의 최초일로서).

%g  “%G” (와)과 같은 나이입니다만, 백년기없음의 10 진수 (00-99)로 옮겨놓을 수 있습니다.

%H  (24 시간 시계로) 시간을 나타내는 10 진수 (00-23)로 옮겨놓을 수 있습니다.

%h  %b 과 같습니다.

%I  (12 시간 시계로) 시간을 나타내는 10 진수 (01-12)로 옮겨놓을 수 있습니다.

%j  1 년일을 나타내는 10 진수 (001-366)로 옮겨놓을 수 있습니다.

%k  (24 시간 시계로) 시간을 나타내는 10 진수 (0-23)로 옮겨놓을 수 있습니다. 1 자리수의 숫자의 전에는 공백이 붙습니다.

%l  (12 시간 시계로) 시간을 나타내는 10 진수 (1-12)로 옮겨놓을 수 있습니다. 1 자리수의 숫자의 전에는 공백이 붙습니다.

%M  분을 나타내는 10 진수 (00-59)로 옮겨놓을 수 있습니다.

%m  달을 나타내는 10 진수 (01-12)로 옮겨놓을 수 있습니다.

%n  개행으로 옮겨놓을 수 있습니다.

%O* %E* 과 같습니다.

%p  각국의 표현으로 "오전" 또는 "오후" 의 어느쪽이든 해당하는 표시로 옮겨놓을 수 있습니다.

%R  “%H:%M” (와)과 동등합니다.

%r  “%I:%M:%S %p” (와)과 동등합니다.

%S  초를 나타내는 10 진수 (00-60)로 옮겨놓을 수 있습니다.

%s  세계 표준시 기준 시점으로부터의 초수로 옮겨놓을 수 있습니다 (mktime(3) 참조).

%T  “%H:%M:%S” (와)과 동등합니다.

%t  탭으로 옮겨놓을 수 있습니다.

%U  1 년 중 주수 (일요일을 주의 최초일로서)를 나타낸다 10 진수 (00-53)로 옮겨놓을 수 있습니다.

%u  1 주 중 일 (월요일을 주의 최초일로서)을 나타낸다 10 진수 (1-7)로 옮겨놓을 수 있습니다.

%V  1 년 중 주수 (월요일을 주의 최초일로서)를 나타낸다 10 진수 (01-53)로 옮겨놓을 수 있습니다. 신년의 1 월 1 일을 포함한 주에 4 일 이상일이 있는 경우는, 그 주가 제 1 주가 됩니다. 그 이외의 경우는, 그 주는 전년의 마지막 주가 되어, 그 다음의 주가 제 1 주가 됩니다.

%v  “%e-%b-%Y” (와)과 동등합니다.

%W  1 년 중 주수 (월요일을 주의 최초일로서)를 나타낸다 10 진수 (00-53)로 옮겨놓을 수 있습니다.

%w  1 주 중 일 (일요일을 주의 최초일로서)을 나타낸다 10 진수 (0-6)로 옮겨놓을 수 있습니다.

%X  각국의 표현으로 시각에 옮겨놓을 수 있습니다.

%x  각국의 표현으로 일자로 옮겨놓을 수 있습니다.

%Y  백년기첨부의 해를 나타내는 10 진수로 옮겨놓을 수 있습니다.

%y  백년기없음의 해를 나타내는 10 진수 (00-99)로 옮겨놓을 수 있습니다.

%Z  시간대명으로 옮겨놓을 수 있습니다.

%z  (은)는 UTC 로부터의 시간대의 차이로 두어 바꿀 수 있습니다. 선두의 플러스 기호는 UTC 로부터 동쪽을 의미해, 마이너스 기호는 UTC 로부터 서쪽을 의미합니다. 계속되는 시간과 분은, 각각 2 자리수이며, 사이에 단락지어 캐릭터는 없습니다 (RFC 822 시각 헤더에 공통입니다).

%+  각국의 표현으로 일자와 시각을 나타내는 것으로 옮겨놓을 수 있습니다 (포맷은 date(1) 에 의해 작성되는 것 것과 같습니다).

%%  ‘%’ 그리고 옮겨놓을 수 있습니다.

참조
date(1), printf(1), ctime(3), printf(3), strptime(3)

표준
strftime() 함수는, ‘%C’, ‘%D’, ‘%E*’, ‘%e’, ‘%G’, ‘%g’, ‘%h’, ‘%k’, ‘%l’, ‘%n’, ‘%O*’, ‘%R’, ‘%r’, ‘%s’, ‘%T’, ‘%t’, ‘%u’, ‘%V’, ‘%z’, ‘%+’ 등을 포함한 많은 확장을 포함해, isoC 에 적합하고 있습니다.

‘%G’, ‘%g’, 및 ‘%V’ 의 옮겨놓아에 있어서의 특수한 주수 및 연수는, ISO 8601: 1988 에 정의되고 있습니다.

버그
달의 코끼리에 관한 변환 지정은 갖추고 있지 않습니다.