strftime
, wcsftime
, _strftime_l
_wcsftime_l
시간 문자열 서식을 지정합니다.
구문
size_t strftime(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr
);
size_t _strftime_l(
char *strDest,
size_t maxsize,
const char *format,
const struct tm *timeptr,
_locale_t locale
);
size_t wcsftime(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr
);
size_t _wcsftime_l(
wchar_t *strDest,
size_t maxsize,
const wchar_t *format,
const struct tm *timeptr,
_locale_t locale
);
매개 변수
strDest
출력 문자열입니다.
maxsize
문자 단위로 측정한 버퍼의 크기strDest
입니다(char
또는 wchar_t
).
format
형식 컨트롤 문자열입니다.
timeptr
tm
데이터 구조입니다.
locale
사용할 로캘입니다.
반환 값
strftime
은 strDest
에 배치되는 문자 수를 반환하고 wcsftime
은 해당하는 와이드 문자의 수를 반환합니다.
종료 null을 포함한 문자의 총 수가 maxsize
보다 많으면 strftime
및 wcsftime
은 둘 다 0을 반환하며 strDest
의 내용은 결정되지 않습니다.
문자 strDest
수는 리터럴 문자 수와 format
서식 코드를 통해 추가할 format
수 있는 문자 수와 같습니다. 문자열의 종료 null은 반환 값에 계산되지 않습니다.
설명
및 함수는 strftime
제공된 format
인수에 timeptr
따라 시간 값의 형식 tm
을 지정하고 결과를 버퍼strDest
에 저장 wcsftime
합니다. 문자열에는 최대 maxsize
개의 문자가 배치됩니다. 구조체의 필드에 대한 설명은 다음을 timeptr
참조하세요 asctime
. wcsftime
은 strftime
에 해당하는 와이드 문자 버전이고 해당 문자열 포인터 인수는 와이드 문자열을 가리킵니다. 그 외의 경우에는 이들 함수가 동일하게 작동합니다.
이 함수는 해당 매개 변수의 유효성을 검사합니다. strDest
null format
포인터이거나 timeptr
주소 tm
가 잘못된 경우timeptr
(예: 시간 또는 날짜에 대한 범위를 벗어난 값이 포함된 경우) 또는 문자열에 잘못된 서식 코드가 포함된 경우 format
매개 변수 유효성 검사에 설명된 대로 잘못된 매개 변수 처리기가 호출됩니다. 계속해서 실행하도록 허용한 경우 함수는 0을 반환하고 errno
를 EINVAL
로 설정합니다.
기본적으로 이 함수의 전역 상태는 애플리케이션으로 범위가 지정됩니다. 이 동작을 변경하려면 CRT 전역 상태를 참조하세요.
일반 텍스트 루틴 매핑
TCHAR.H 루틴 |
_UNICODE 및 _MBCS 정의되지 않음 |
정의된 _MBCS |
정의된 _UNICODE |
---|---|---|---|
_tcsftime |
strftime |
strftime |
wcsftime |
format
인수는 하나 이상의 코드로 구성됩니다. printf
에서와 같이 서식 코드 앞에는 퍼센트 기호(%
)가 붙습니다. 시작 %
하지 않는 문자는 변경되지 않은 상태로 strDest
복사됩니다. 현재 로캘의 LC_TIME
범주가 strftime
의 출력 서식에 영향을 줍니다. (자세한 내용은 LC_TIME
.를 참조하세요setlocale
.) 및 wcsftime
함수는 strftime
현재 설정된 로캘을 사용합니다. _strftime_l
이러한 함수 및 _wcsftime_l
버전은 로캘을 매개 변수로 사용하고 현재 설정된 로캘 대신 사용한다는 점을 제외하고 동일합니다. 자세한 내용은 Locale을 참조하세요.
함수는 strftime
다음 형식 지정 코드를 지원합니다.
코드 | 바꾸기 문자열 |
---|---|
%a |
로캘의 축약된 평일 이름 |
%A |
로캘의 전체 평일 이름 |
%b |
로캘의 약어 월 이름 |
%B |
로캘의 전체 월 이름 |
%c |
로캘에 적합한 날짜 및 시간 표현 |
%C |
연도를 100으로 나눈 후 정수로 자른 다음 10진수(00-99)로 나눕니다. |
%d |
10진수로 매월 일(01 - 31) |
%D |
%m/%d/%y 와 같습니다. |
%e |
한 자리 앞에 공백이 오는 10진수(1-31)로 지정된 월의 일 |
%F |
%Y-%m-%d 와 같습니다. |
%g |
ISO 8601 주 기반 연도의 마지막 2자리 숫자(00 - 99) |
%G |
10진수로 ISO 8601 주 기반 연도 |
%h |
약어 월 이름(해당 %b ) |
%H |
24시간 형식의 시간(00-23) |
%I |
12시간 형식의 시간(01 - 12) |
%j |
10진수로 1년 중 일(001 - 366) |
%m |
10진수로 매월(01 - 12) |
%M |
10진수로 분(00 - 59) |
%n |
줄선 문자(\n ) |
%p |
12시간 시계에 대한 로캘의 A.M./P.M. 표시기 |
%r |
로캘의 12시간 시계 시간 |
%R |
%H:%M 와 같습니다. |
%S |
10진수로 두 번째(00 - 59) |
%t |
가로 탭 문자(\t ) |
%T |
%H:%M:%S ISO 8601 시간 형식에 해당합니다. |
%u |
평일 ISO 8601을 10진수로(1 - 7; 월요일은 1) |
%U |
첫 번째 일요일이 첫째 주 1일인 10진수(00- 53)로 표시된 연도의 주 번호 |
%V |
10진수로 ISO 8601 주 번호(00 - 53) |
%w |
평일을 10진수로(0 - 6; 일요일은 0) |
%W |
첫 번째 월요일이 첫째 주 1일인 10진수(00- 53)로 표시된 연도의 주 번호 |
%x |
로캘의 날짜 표현 |
%X |
로캘에 대한 시간 표현 |
%y |
세기가 없는 연도(10진수) (00 - 99) |
%Y |
세기 포함 10진수 연도 |
%z |
ISO 8601 형식의 UTC 오프셋입니다. 표준 시간대를 알 수 없는 경우 문자 없음 |
%Z |
레지스트리 설정에 따라 로캘의 표준 시간대 이름 또는 표준 시간대 약어 표준 시간대를 알 수 없는 경우 문자 없음 |
%% |
퍼센트 기호 |
printf
함수에서와같이 모든 서식 코드에는 #
플래그가 접두사로 추가될 수 있습니다. 이 경우의 서식 코드 의미는 다음과 같이 변경됩니다.
코드 형식 | 의미 |
---|---|
%#a , %#A , %#b , %#B , %#g , %#G , , %#h , %#n , %#t %#p , %#u %#w %#X %#z %#Z ,%#% |
# 플래그는 무시됩니다. |
%#c |
로캘에 적합한 긴 날짜 및 시간 표현입니다. 예를 들면 "1995년 3월 14일 화요일 12:41:29"와 같습니다. |
%#x |
로캘에 적합한 긴 날짜 표현입니다. 예를 들면 "1995년 3월 14일 화요일"과 같습니다. |
%#d , %#D , %#e , %#F , %#H , %#I , , %#j , %#m , %#M , %#R , %#S %#y %#T %#U %#V %#W %#r %#Y |
선행 0 또는 공백(있는 경우)을 제거합니다. |
ISO 8601 주 및 주 기반 연도는 %V
%g
%G
월요일에 시작되는 주를 사용합니다. 1주차는 1월 4일이 포함된 주이며, 첫 주에는 최소 4일이 포함됩니다. 첫 번째 월요일이 2번째, 3번째 또는 4번째인 경우 이전 날짜는 이전 연도의 마지막 주에 속합니다. 해당 날짜 %V
의 경우 53으로 대체되고 둘 다 %g
%G
이전 연도의 숫자로 바뀝니다.
참고 항목
반환gmtime
된 strftime
포인터와 함께 tm
함수 중 하나를 사용하는 경우 지정 %z
자를 통해 %Z
인쇄된 값은 정확하지 않습니다. 이는 C Standard에서 tm
지정한 구조체에 표준 시간대 이름 또는 오프셋에 대한 정보가 포함되지 않기 때문입니다. 대신 표준 시간대 정보는 전역 변수 및_dstbias
.를 통해 채워집니다_timezone
.
요구 사항
루틴에서 반환된 값 | 필수 헤더 |
---|---|
strftime |
<time.h> |
wcsftime |
<time.h> 또는 <wchar.h> |
_strftime_l |
<time.h> |
_wcsftime_l |
<time.h> 또는 <wchar.h> |
_strftime_l
및 _wcsftime_l
함수는 Microsoft 전용입니다. 호환성에 대한 자세한 내용은 호환성을 참조하세요.
예시
time
에 대한 예를 참조하세요.
참고 항목
Locale
시간 관리
문자열 조작
localeconv
setlocale
, _wsetlocale
strcoll
함수
strxfrm
, wcsxfrm
, _strxfrm_l
_wcsxfrm_l