2011-10-10 5 views
1

특정 작업 중에 현재 응용 프로그램에 현재 시간을 표시해야합니다. 현재 시스템 시간 형식이 HH:mm:ss 인 경우 사용자가 응용 프로그램이 실행 중일 때 hh:mm:ss tt으로 변경하면 변경 사항을 적용하지 않습니다! 여전히 시간은 HH:mm:ss입니다. CultureInfo에서 잘못된 시간 형식이 나타나는 이유는 무엇입니까?

나는 DateTime.Now.ToLongTimeString()DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);

실종 있나요를 사용하여 시도? 어떤 문제 해결을위한 제안?

답변

4

프레임 워크가 단순히 시간 형식에 사용 된 패턴을 캐싱하고 있으며 앱을 다시 시작하기 전까지는 일반적으로 프레임을 다시 가져 오지 않을 것이라고 생각합니다.

ClearCachedData을 호출하여 시스템 시간 형식의 OS로 돌아갈 수 있습니다. (형식을 변경했을 때 을 처리 할 수 ​​있는지 여부는 알 수 없습니다. 물론 캐시를 항상 지우고 싶지는 않습니다.)

+0

감사합니다. Jon, 'ClearCacheData' 그러나 캐시를 지우는시기를 알아야한다고 말한대로 문제가 해결됩니다. –

+0

창 메시지를들을 수있는 경우 WM_SETTINGCHANGE를 수신하면 캐시를 지워야 할 때 알려줍니다. –

관련 문제