2012-09-25 1 views
1

Windows 7 + 외국어 팩을 실행 중입니다. (기본 언어를 외국어로 설정했습니다.) 유효한 SYSTEMTIME 구조체가 있고 현지화 된 날짜/시간을 빌드하려고합니다. 나는 형식 문자열을 얻을 다음 나는 모든LOCALE_SSHORTDATE가있는 GetDateFormat이 지역화되지 않은 숫자를 반환합니다.

GetDateFormat(LOCALE_USER_DEFAULT, 0, &st, pFmt, formattedString, MAX_PATH); 
GetDateFormat(LOCALE_SYSTEM_DEFAULT, 0, &st, pFmt, formattedString, MAX_PATH); 
GetDateFormat(localeinfo, 0, &st, pFmt, formattedString, MAX_PATH); 

다음 숫자와 문자열 지역화되지 않습니다 시도했습니다

WCHAR pFmt[MAX_SIZE] = {0}; 
int localeinfo=GetLocaleInfo(localeID, LOCALE_SSHORTDATE, pFmt, sizeof(pFmt)/sizeof(TCHAR)); 

지역화 된 날짜를 얻으려고하는 방법

이입니다 - 모든 경우에 나는 항상 형식화 된 문자열을 얻습니다.

pFmt   "dd/MM/yyyy" 
formattedString "25/09/2012"  (I want this to be in the foreign language) 

어떻게하면 forma를 얻을 수 있습니까? 숫자에 대한 지역화 된 값을 갖기 위해 ttedstring을 사용합니까?

+0

가 정확히 어떻게 당신이 수를 지역화 않습니다

LCID lcidEnUs = MAKELCID(MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US), SORT_DEFAULT); GetDateFormat(lcidEnUs, 0, &st, NULL, formattedString, MAX_PATH); 

그리고이 :

예를 들어이 호출 한 후 formattedString을 비교하려고? –

+0

외국어 팩을 설치하십시오 - 달력을여십시오. 숫자는 어떻게 현지화되어 있습니까? 그것이 내가 얻으려고하는 것입니다. –

+1

형식 문자열 "dd/MM/yyyy"는 항상 숫자로 서식이 지정된 날짜를 반환합니다. 숫자는 항상 숫자가 될 것입니다. 확실히 모든 유럽 언어 팩에서 사용됩니다. 현지화와의 차이점을 확인하려면 숫자가 아닌 월 또는 일 이름을 반환하는 형식 문자열이 필요합니다. –

답변

2

GetDateFormat에 로케일에 해당하는 형식을 사용하려면없이 4 번째 매개 변수가 NULL로 설정된 으로 전화해야합니다.

LCID lcidFrFr = MAKELCID(MAKELANGID(LANG_FRENCH, SUBLANG_FRENCH), SORT_DEFAULT); 
GetDateFormat(lcidFrFr, 0, &st, NULL, formattedString, MAX_PATH); 
관련 문제