2011-02-18 10 views

답변

133

이 시도 :

문화 민감 이상 .NET 3.5 SP1 이상이 필요합니다
<TextBlock Text="{Binding PropertyPath, StringFormat=d}" /> 

.

참고 : 대소 문자를 구분합니다. "d"는 이고 "d"는 인 반면 short date format specifier입니다.

MSDN page on Standard Date and Time Format Strings에 문자열 형식의 전체 목록 및 그러나 this MSDN blog post

에있는 모든 옵션의보다 완전한 설명이있어,이 하나 잡았다가 - 당신은 문화를 설정하지 않는 한 항상 미국 형식으로 날짜를 출력 너 자신에게 정확한 가치에. 이 속성을 설정하지 않은 경우

는 바인딩 엔진은 바인딩 대상 객체의 언어 속성을 사용합니다. XAML에서는 기본적으로 "en-US"로 설정되거나 명시 적으로 설정된 경우 페이지의 루트 요소 (또는 요소)에서 값을 상속합니다. 이 작업을 수행하는

Source

한 가지 방법은 뒤에 코드에 (당신이 올바른 값으로 스레드의 문화를 설정 한 가정)

this.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name); 

다른 방법은이다 바인딩의 변환기 culture를 설정하십시오.

<TextBlock Text="{Binding PropertyPath, StringFormat=d, ConverterCulture=en-GB}" /> 

출력을 지역화 할 수는 없지만.

+0

고마워요! 알았어! 제가 Short Date 문자열 형식이 무엇인지 염두에 두었을 때 문자열 형식 목록을 어디에서 찾을 수 있습니까? 또한 StringFormat = d로 대답하는 것이 좋았습니다. 매우 명확하고 완전합니다. – Tony

+0

문화 설정에 관계없이 항상이 형식을 출력합니까? – CRice

+0

@CRice - 그렇습니다 - 어떤 이유에서든 - 당신은 당신 자신의 문화를 정했습니다. – ChrisF

4

그냥 사용

<TextBlock Text="{Binding Date, StringFormat=\{0:d\}}" /> 
19

StringFormat 속성 (또는 ContentControl 및 및 그 유도체, 예 : Label)을 사용하십시오.

<TextBlock Text="{Binding Date, StringFormat={}{0:d}}" /> 

참고 {} 전에 표준 String.Format 위치 인수 표기가 괄호는 태그 확장 언어로 탈출 할 수 있도록합니다.

+3

'{}'는'StringFormat = '{} Created Date : {0 : d}' '를 사용하면 예기치 않은 결과를 초래할 수 있습니다. –

32

또는 형식을 영어를 위해 이것을 사용 (또는 사용자 정의를 위해 그것을 혼합) :

당신이 값을 이용하여 문자열을 추가하려면
StringFormat='{}{0:dd/MM/yyyy}' 
+2

바인딩에서 'ConverterCulture ='를 사용할 수도 있습니다. 형식을 나타내는 값이 필요합니다. (ConverterCulture = 'en-GB'는 영국입니다.) – else

1

이 :

<TextBlock Text="{Binding Date, StringFormat= 'Date : {0:d}'}" /> 
1

일부 날짜 시간있는 StringFormat 샘플 나는 유용하다고 생각했다.해제 된 C# Examples

DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123); 

String.Format("{0:y yy yyy yyyy}", dt); // "8 08 008 2008" year 
String.Format("{0:M MM MMM MMMM}", dt); // "3 03 Mar March" month 
String.Format("{0:d dd ddd dddd}", dt); // "9 09 Sun Sunday" day 
String.Format("{0:h hh H HH}",  dt); // "4 04 16 16"  hour 12/24 
String.Format("{0:m mm}",   dt); // "5 05"   minute 
String.Format("{0:s ss}",   dt); // "7 07"   second 
String.Format("{0:f ff fff ffff}", dt); // "1 12 123 1230" sec.fraction 
String.Format("{0:F FF FFF FFFF}", dt); // "1 12 123 123" without zeroes 
String.Format("{0:t tt}",   dt); // "P PM"   A.M. or P.M. 
String.Format("{0:z zz zzz}",  dt); // "-6 -06 -06:00" time zone