2012-07-10 1 views
1

IFormatProvider을 사용하지 않고 사용자 지정 형식 지정자를 정의해야합니다.기본 형식 공급자에 대한 사용자 지정 날짜 시간 형식 지정자 추가

var str = DateTime.Now.ToString("myCustomSpecifier"); 

형식 제공 업체를 사용하지 않는 이유는 무엇입니까? 코드 생성 환경에서 작업 중이므로 ToString에 대한 두 번째 매개 변수를 지정할 수 없기 때문입니다.

동시에 우리는 방법 .ToString()을 유지하지 않으므로 확장 방법을 사용하여 다른 방법을 만드는 것이 허용되지 않습니다.

Thread.CurrentThread.CurrentUICulture 명의 회원을 검색해 보았습니다. 구성 할 수있는 설정이 있는지 확인하려고했습니다. 또는 기본 형식 공급자를 설정할 수 있는지 여부. 나는 아무것도 찾을 수 없었다.

누구나 가능하다고 생각합니까? 그렇다면 어떻게?

+0

확장 방법을 정결하게 적용 할 수 있습니까? '.ToCustomString'을 정의하고 대신 사용하려는 경우 – tmesser

+0

; 아니, 받아 들일 수 없다. –

답변

0
internal const string DATETIME_FORMAT = "dd MMM yyyy"; 

public void Method() 
{ 
    var str = DateTime.Now.ToString(DATETIME_FORMAT); 
} 
+0

몇 가지 설명을 포함하여 답을 편집하십시오. 코드 전용 답변은 향후 SO 독자를 교육하는 데 거의 도움이되지 않습니다. 귀하의 대답은 저품질을위한 중재 큐에 있습니다. – mickmackusa

0

당신은 직접 App.xaml.cs.의 생성자에서이 코드를 넣어 현재의 thread

var cultureInfo = (CultureInfo)CultureInfo.GetCultureInfo("fr-FR").Clone(); 
cultureInfo.DateTimeFormat.ShortDatePattern = "dd.MM.yyyy"; 
Thread.CurrentThread.CurrentCulture = cultureInfo; 
Thread.CurrentThread.CurrentUICulture = cultureInfo; 

의 문화에서이 작업을 수행 할 수 있습니다

ToString("d") 메서드는 사용자 지정 패턴을 표시합니다.