2012-04-26 3 views
0

나는 다음과 같은 코드로 CurrentCulture의 LongTimePattern 속성을 설정하기 위해 노력하고있어 인스턴스가 읽기 전용.CurrentCulture.DateTimeFormat.LongTimePattern 읽기 전용

어떻게 변경할 수 있습니까? LongTimePattern에 모든 문화권에 대해 24 시간 형식을 표시하고 싶습니다.

답변

3

System.Threading.Thread.CurrentThread.CurrentCulture를 변경하면 LongTimePattern이 자동으로 업데이트됩니다.

현재 할당 된 문화 정보에서는 업데이트 할 수 없지만 새 문화권을 만들고 현재 문화권에 할당합니다.

CultureInfo i; 
i = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone(); 
i.DateTimeFormat.LongTimePattern = "HH:mm:ss"; 
i.DateTimeFormat.ShortTimePattern = "HH:mm"; 
Thread.CurrentThread.CurrentCulture = i; 
i = (CultureInfo)Thread.CurrentThread.CurrentUICulture.Clone(); 
i.DateTimeFormat.LongTimePattern = "HH:mm:ss"; 
i.DateTimeFormat.ShortTimePattern = "HH:mm"; 
Thread.CurrentThread.CurrentUICulture = i; 

이 더 나은 것 같다 : 당신은 단지 하나 개 또는 두 개의 값을 변경하고 나머지는 동일하게 유지하려면

System.Globalization.CultureInfo c = new System.Globalization.CultureInfo("es-ES"); 
c.DateTimeFormat.LongTimePattern = "h-mm-ss"; 
Thread.CurrentThread.CurrentCulture = c; 
+0

감사합니다. 그것은 작동합니다 :) – Ionica

0

당신이 문화를 바꿀 수 있다면 그렇게 할 수 있을지 확신하지 못합니다. 처음부터 문화를 가지고있는 목적을 이길 수 있습니다. 문화에 의해 일반적으로 받아 들여지는 형식으로 날짜와 시간을 보여 주어야합니다.

다른 형식을 표시하려면 항상 사용자 지정 날짜/시간 포맷터를 사용할 수 있습니다.

사용 가능한 모든 사전 설정 형식 및 사용자 고유의 형식을 표시하는 방법에 대한 자세한 내용은 http://msdn.microsoft.com/en-us/library/az4se3k1.aspx을 참조하십시오.

1

것은, 현재 문화의 쓰기 가능한 사본, 예를 얻기 위해 복제를 사용할 수 있습니다 당신의 시작 문화를 얻기 위해 문화 문자열을 사용하는 것보다.