Формат WPF DateTime в TextBlock?

У меня есть TextBlock, связанный со свойством DateTime. Как настроить формат даты?


person Peter    schedule 26.08.2009    source источник


Ответы (3)


При объявлении привязки доступно свойство формата строки:

<TextBox Text="{Binding Path=DateTimeValue, StringFormat=dd-MM-yyyy}" />

(Чтобы это свойство существовало, вам необходимо использовать .NET 3.5 SP1.)

person Martin Harris    schedule 26.08.2009
comment
Просто сообщаю вам, что теперь это TextBox ‹- заглавная буква B - person Alex; 24.03.2017

Если вы хотите использовать строку общего формата между привязками, вы можете объявить привязку следующим образом:

<Textbox Text={Binding Path=DateTimeValue, StringFormat={x:Static local:Constants.DateTimeUiFormat}} />

С вашим классом констант следующим образом:

public static class Constants
{
    public const string DateTimeUiFormat = "dd/MM/yyyy";

    //etc...
}
person Brian Hinchey    schedule 26.09.2012
comment
Спасибо Брайан! Я использовал это в сочетании с System.Threading.Thread.CurrentThread.CurrentUICulture.DateTimeFormat.ShortDatePattern, чтобы получить короткое свидание i18n. - person Ben; 11.01.2019

Может кому пригодится:

<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now},
           StringFormat='{}{0: Today is dddd, MMMM dd, yyyy, hh:mm:ss}'}"/>

или 24-часовой и 2-значный формат месяца и года:

<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now},
           StringFormat='{}{0: Today is dddd, MM.dd.yy, HH:mm:ss}'}"/>
person ZloyMakak    schedule 20.09.2016