Формат даты / времени в 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 будет выглядеть как

enter image description here


в 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

используйте какой-нибудь делиметр, вот так:

  1. MessageBox.Показать (DateValue.ToString ("гггг-ММ-ДД")); пример результата: "2014-09-30"
  2. пустой строка формата: Функции MessageBox.Показать (DateValue.Метод toString()); пример результата: "30.09.2014 0:00:00"