Формат даты / времени в XAML в Silverlight - PullRequest
64 голосов
/ 07 апреля 2011

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

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

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

Ответы [ 5 ]

101 голосов
/ 07 апреля 2011
<TextBlock Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy a\\t h:mm tt}'}" />

вернет вам

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

59 голосов
/ 07 апреля 2011

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

Даты

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

Для DateTime «17 апреля 2004 г., 13:52:45»

Вы можете использовать набор стандартных форматов (стандартных форматов)…

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”
10 голосов
/ 24 июня 2013

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

StringFormat=d

в столбце вашей таблицы данных для даты и времени, показывая

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

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

, выходной результат будет выглядеть

enter image description here

6 голосов
/ 01 октября 2014

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

  • гггг (гг / ггг) - годы
  • ММ - месяцы (например, «03»), ММММ - месяцы (например, «март»)
  • дд - дни (например, 09), ддд / дддд - дни (вс / воскресенье)
  • чч - 12 часов (AM / PM), чч - 24 часа
  • мм - минута
  • сс - секунда

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

  1. MessageBox.Show (DateValue.ToString ( "гггг-ММ-дд")); пример результата: "2014-09-30"
  2. пустая строка формата: MessageBox.Show (DateValue.ToString ()); пример результата: "30.09.2014 0:00:00"
6 голосов
/ 03 мая 2013

В 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\}'}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...