2011-02-18 61 views

回答

133

試試這個:

<TextBlock Text="{Binding PropertyPath, StringFormat=d}" /> 

這是文化敏感,需要.NET 3.5 SP1或更高版本。

注意:這是區分大小寫的。 「d」是short date format specifier,而「D」是long 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); 

的另一種方式是設置綁定中的轉換器文化:

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

雖然這不允許您本地化輸出。

+0

謝謝!你說對了!當我問我什麼是短日期字符串格式時,我可以在哪裏找到字符串格式列表,並且我喜歡你用StringFormat = d來回答。非常清晰和完整。 – Tony 2011-02-18 23:21:07

+0

這是否總是輸出美國格式,無論文化設置? – CRice 2014-08-22 06:14:31

+0

@CRICE - 是的 - 出於某種原因 - 你已經設定了自己的文化。 – ChrisF 2014-08-22 07:42:10

4

只需使用:

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

使用StringFormat財產(或ContentStringFormatContentControl及其派生物,例如Label)。

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

注意{}標準String.Format位置參數表示法允許撐杆在標記擴展語言逸出之前。

32

或者使用一個英語(或者自定義混淆了)格式:

StringFormat='{}{0:dd/MM/yyyy}' 
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