GetDurationFormatEx 함수(winnls.h)
시간 기간을 이름으로 지정된 로캘의 시간 문자열로 서식을 지정합니다.
구문
int GetDurationFormatEx(
[in, optional] LPCWSTR lpLocaleName,
[in] DWORD dwFlags,
[in, optional] const SYSTEMTIME *lpDuration,
[in] ULONGLONG ullDuration,
[in, optional] LPCWSTR lpFormat,
[out, optional] LPWSTR lpDurationStr,
[in] int cchDuration
);
매개 변수
[in, optional] lpLocaleName
로캘 이름 또는 다음 미리 정의된 값 중 하나에 대한 포인터입니다.
[in] dwFlags
함수 옵션을 지정하는 플래그입니다. lpFormat이 NULL로 설정되지 않은 경우 이 매개 변수를 0으로 설정해야 합니다. lpFormat이 NULL로 설정된 경우 애플리케이션은 지정된 로캘에 대한 시스템 기본 기간 형식을 사용하여 문자열의 형식을 지정하는 LOCALE_NOUSEROVERRIDE 지정할 수 있습니다.
[in, optional] lpDuration
형식을 지정할 기간 정보를 포함하는 SYSTEMTIME 구조체에 대한 포인터입니다. 함수가 이 매개 변수를 무시하고 ullDuration을 사용하는 경우 애플리케이션은 이 매개 변수를 NULL로 설정합니다.
[in] ullDuration
기간의 100나노초 간격 수를 나타내는 64비트 부호 없는 정수입니다. lpDuration과 ullDuration이 모두 설정된 경우 lpDuration 매개 변수가 우선합니다. lpDuration이 NULL로 설정되고 ullDuration이 0으로 설정된 경우 기간은 0입니다.
[in, optional] lpFormat
아래와 같이 문자가 있는 형식 문자열에 대한 포인터입니다. 함수가 지정된 로캘의 기간 형식에 따라 문자열의 형식을 지정하는 경우 애플리케이션에서 이 매개 변수를 NULL 로 설정할 수 있습니다. lpFormat이 NULL로 설정되지 않은 경우 함수는 그림 문자열 서식에 지정되지 않은 정보에 대해서만 로캘을 사용합니다.
[out, optional] lpDurationStr
함수가 기간 문자열을 검색하는 버퍼에 대한 포인터입니다.
또는 cchDuration이 0으로 설정된 경우 이 매개 변수는 NULL을 검색합니다. 이 경우 함수는 기간 문자열 버퍼에 필요한 크기를 반환합니다.
[in] cchDuration
lpDurationStr로 표시된 버퍼의 크기(문자)입니다.
또는 애플리케이션에서 이 매개 변수를 0으로 설정할 수 있습니다. 이 경우 함수는 lpDurationStr에서 NULL을 검색하고 기간 문자열 버퍼에 필요한 크기를 반환합니다.
반환 값
성공하면 lpDurationStr 로 표시된 버퍼에서 검색된 문자 수를 반환합니다. lpDurationStr이 NULL로 설정되고 cchDuration이 0으로 설정된 경우 함수는 종료 null 문자를 포함하여 기간 문자열 버퍼에 필요한 크기를 반환합니다. 예를 들어 버퍼에 10자를 쓰는 경우 함수는 종료 null 문자를 포함하도록 11을 반환합니다.
함수가 성공하지 못하면 0을 반환합니다. 확장된 오류 정보를 가져오기 위해 애플리케이션은 GetLastError를 호출할 수 있으며, 다음 오류 코드 중 하나를 반환할 수 있습니다.
- ERROR_INSUFFICIENT_BUFFER. 제공된 버퍼 크기가 충분히 크지 않거나 NULL로 잘못 설정되었습니다.
- ERROR_INVALID_PARAMETER. 매개 변수 값이 잘못되었습니다.
설명
이 함수는 파일 시간을 표시하는 멀티미디어 애플리케이션 및 완료 시간을 표시하는 스포츠 이벤트 애플리케이션과 함께 사용할 수 있습니다.
함수는 SYSTEMTIME 구조체의 처음 세 멤버인 wYear, wMonth 및 wDayOfWeek을 무시합니다.
이 함수는 사용자 지정 로캘에서 데이터를 검색할 수 있습니다. 데이터가 컴퓨터에서 컴퓨터로 또는 애플리케이션 실행 간에 동일하지는 않습니다. 애플리케이션이 데이터를 유지하거나 전송해야 하는 경우 영구 로캘 데이터 사용을 참조하세요.
기간 형식 문자열의 특징은 다음과 같습니다.
-
서식 문자는 소문자입니다.
참고 (H)가 GetTimeFormatEx와 일치하도록 예외가 발생합니다.
- 값이 10보다 작은 경우 시간, 분 및 초의 두 자리 서식 문자열 앞에 선행 0이 추가됩니다.
- 첫 번째 출력 필드에는 경계 테스트가 적용되지 않습니다(시간<24, 분<60, 초<60, 밀리초<1000). 일 수에는 경계 테스트가 적용되지 않습니다.
- 함수는 모든 형식 문자열이 필드 크기(예: 시간, 분, 초, 밀리초)를 줄인다고 가정합니다.
- 표시할 첫 번째 필드는 형식 문자열에 정의된 대로 정규화됩니다. 예를 들어 애플리케이션이 310초를 지정하고 형식 문자열이 m:ss인 경우 출력은 5:10입니다. 그러나 형식 문자열이 분 및 초를 지정하지만 애플리케이션에서 시간을 지정하는 경우 분 필드는 그에 따라 조정됩니다.
- 소수 자릿수가 첫 번째 필드가 아닌 경우 형식 문자열의 "f" 문자 수는 표시할 10진수(9로 제한)를 나타냅니다. 소수 자릿수가 첫 번째 필드인 경우 "f" 문자 수는 1초 미만의 유효 자릿수를 나타냅니다.
- 라운드오프는 5회 반올림 및 4라운드 다운 규칙이 아니라 잘림에 의해 발생합니다.
- 작은따옴표는 문자를 이스케이프하는 데 사용됩니다.
예
다음은 지정된 기간에 대한 기간 형식 및 해당 출력의 예입니다.
SYSTEMTIME = 14일, 2시간, 45분, 12초 및 247밀리초
서식 | 출력 |
---|---|
d:hh:mm:ss | 14:02:45:12 |
hh:mm:ss:ff | 338:45:12:24 |
hh:mm:ss:fff | 338:45:12:247 |
h' h 'mm' m 'ss' s' | 338 h 45 m 12 s |
SYSTEMTIME = 345초
서식 | 출력 |
---|---|
hh:mm:ss | 00:05:45 |
h:mm:ss | 0:05:45 |
mm:ss | 05:45 |
m:ss | 5:45 |
mm' m 'ss' s' | 05 m 45 s |
ss | 345 |
ss'초' | 345초 |
uulDuration = 51234567(5.1234567초)
서식 | 출력 |
---|---|
s.fff | 5.123 |
s.ffffff | 5.123456 |
s.fffffffff | 5.123456700(후행 0 추가) |
fff 'ms' | 5123ms |
ffffff '마이크로초' | 5123456 마이크로초 |
fffffffff 'ns' | 5123456700 ns |
요구 사항
지원되는 최소 클라이언트 | Windows Vista [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2008 [데스크톱 앱 | UWP 앱] |
대상 플랫폼 | Windows |
헤더 | winnls.h(Windows.h 포함) |
라이브러리 | Kernel32.lib |
DLL | Kernel32.dll |