Подтвердить что ты не робот

Формат даты/времени в XAML в Silverlight

У меня есть приложение Silverlight 4. У меня есть объект С# DateTime, который я привязываю к своему пользовательскому интерфейсу. Я хочу, чтобы этот DateTime находился в формате dd/mm/yyyy time (TimeZone). Например, сегодня будет отображаться как

04/07/2011 at 01:13 p.m. (EST)

Есть ли способ сделать это XAML? Или мне нужно построить конвертер?

4b9b3361

Ответ 1

<TextBlock Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy a\\t h:mm tt}'}" />

вернет вас

04/07/2011 в 13:28 (-04)

Ответ 2

Вы можете использовать StringFormat в Silverlight 4, чтобы обеспечить пользовательское форматирование значения, которое вы связываете.

Даты

Форматирование даты имеет огромный диапазон параметров.

Для DateTime "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"

Ответ 3

вы также можете использовать только

StringFormat=d

в столбце datagrid для даты, показывающей

наконец, это будет

   <sdk:DataGridTextColumn  Binding="{Binding Path=DeliveryDate,StringFormat=d}" Header="Delivery date" Width="*" />

out put будет выглядеть как

enter image description here

Ответ 4

С#: попробуйте это

  • yyyy (yy/yyy) - лет
  • ММ - месяцы (например, "03" ), MMMM - месяцы (например, "Март" )
  • dd - дни (например, 09), ddd/dddd - дни (вс/воскресенье)
  • hh - час 12 (AM/PM), HH - час 24
  • мм - минута
  • ss - second

Используйте некоторый разделитель, например:

  • MessageBox.Show(DateValue.ToString( "гггг-ММ-дд" )); Пример результата: "2014-09-30"
  • строка пустой строки: MessageBox.Show(DateValue.ToString()); Пример результата: "30.09.2014 0:00:00"

Ответ 5

В 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\}'}">