Формат даты / времени в XAML в Silverlight
у меня есть приложение Silverlight 4. У меня есть объект C# DateTime, который я привязываю к своему пользовательскому интерфейсу. Я хочу, чтобы эта дата в формате dd/mm/yyyy
время (часовой пояс). Например, сегодня будет отображаться как
04/07/2011 at 01:13 p.m. (EST)
есть ли способ сделать это XAML
? Или мне нужно построить конвертер?
5 ответов
<TextBlock Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy a\t h:mm tt}'}" />
вернуться
04/07/2011 в 1:28 вечера (-04)
можно использовать StringFormat в Silverlight 4, чтобы обеспечить пользовательское форматирование значение привязки.
времени
форматирование даты имеет огромный диапазон параметров.
для даты и времени "17 апреля 2004, 1: 52: 45 PM"
Вы можете использовать набор стандартных форматов (стандартные форматы)...
StringFormat=f : “Saturday, April 17, 2004 1:52 PM”
StringFormat=g : “4/17/2004 1:52 PM”
StringFormat=m : “April 17”
StringFormat=y : “April, 2004”
StringFormat=t : “1:52 PM”
StringFormat=u : “2004-04-17 13:52:45Z”
StringFormat=o : “2004-04-17T13:52:45.0000000”
... или вы можете создать свое собственное форматирование даты, используя буквы (пользовательские форматы)
StringFormat=’MM/dd/yy’ : “04/17/04”
StringFormat=’MMMM dd, yyyy g’ : “April 17, 2004 A.D.”
StringFormat=’hh:mm:ss.fff tt’ : “01:52:45.000 PM”
вы также можете использовать просто
StringFormat=d
в столбце datagrid для отображения времени даты
наконец-то он будет
<sdk:DataGridTextColumn Binding="{Binding Path=DeliveryDate,StringFormat=d}" Header="Delivery date" Width="*" />
out put будет выглядеть как
в SL5 я нашел, что это работает:
<TextBlock Name="textBlock" Text="{Binding JustificationDate, StringFormat=dd-MMMM-yy hh:mm}">
<TextBlock Name="textBlock" Text="{Binding JustificationDate, StringFormat='Justification Date: \{0:dd-MMMM-yy hh:mm\}'}">
в C#: попробуйте это
- гггг (гг/гг) - лет
- мм-месяцев(как "03"), мммм - месяцев (как "март")
- DD-дней (как 09), ddd / dddd-дней (Солнце/воскресенье)
- чч-час 12 (AM / PM), чч - час 24
- мм - минуты
- ss-second
используйте какой-нибудь делиметр, вот так:
- MessageBox.Показать (DateValue.ToString ("гггг-ММ-ДД")); пример результата: "2014-09-30"
- пустой строка формата: Функции MessageBox.Показать (DateValue.Метод toString()); пример результата: "30.09.2014 0:00:00"