在Silverlight中格式化XAML中的日期/时间

时间:2011-04-07 17:14:17

标签: c# silverlight xaml

我有一个Silverlight 4应用程序。我有一个C#DateTime对象,我绑定到我的UI。我希望此DateTime的格式为dd/mm/yyyy time(TimeZone)。例如,今天将显示为

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

有没有办法做到这一点XAML?或者我需要构建转换器吗?

6 个答案:

答案 0 :(得分:98)

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

会回复你

04/07/2011下午1:28(-04)

答案 1 :(得分:59)

您可以在Silverlight 4中使用StringFormat来提供绑定值的自定义格式。

日期

日期格式有很多选项。

日期时间为“2004年4月17日下午1: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”

答案 2 :(得分:10)

您也可以使用

StringFormat=d
数据网格列中的

显示日期时间

最后它将是

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

输出将看起来像

enter image description here

答案 3 :(得分:6)

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

答案 4 :(得分:6)

C#:试试这个

  • yyyy(yy / yyy) - 年
  • MM - 月份(比如&#39; 03&#39;),MMMM - 月份(比如&#39; March&#39;)
  • dd - 天(如09),ddd / dddd - 天(周日/周日)
  • hh - 小时12(上午/下午),HH - 小时24
  • mm - 分钟
  • ss - second

使用一些分隔符,如下所示:

  1. MessageBox.Show(DateValue.ToString(&#34; YYYY-MM-DD&#34)); 示例结果:&#34; 2014-09-30&#34;
  2. 空格式字符串: MessageBox.Show(DateValue.ToString()); 示例结果:&#34; 30.09.2014 0:00:00&#34;

答案 5 :(得分:0)

对我来说这是有效的:

<TextBlock Text="{Binding Date , StringFormat=g}" Width="130"/>

如果想用 G 而不是 g 来显示秒数:

<TextBlock Text="{Binding Date , StringFormat=G}" Width="130"/>

另外,如果想使用 Language 将日期类型更改为另一种(如 Persian):

<TextBlock Text="{Binding Date , StringFormat=G}" Width="130" Language="fa-IR"/>