在Silverlight的XAML中格式化date/时间
我有一个Silverlight 4应用程序。 我有一个C#DateTime对象,我绑定到我的用户界面。 我想这个date时间格式为dd/mm/yyyy
时间(TimeZone)。 例如,今天会显示为
04/07/2011 at 01:13 pm (EST)
有没有办法做到这一点的XAML
? 或者我需要build立一个转换器?
<TextBlock Text="{Binding Date, StringFormat='{}{0:MM/dd/yyyy a\\th:mm tt}'}" />
会回报你
04/07/2011 at 1:28 PM(-04)
您可以在Silverlight 4中使用StringFormat来提供您绑定的值的自定义格式。
date
date格式有很多选项。
对于“2004年4月17日1:52:45 PM”的date时间
您可以使用一组标准格式(标准格式)…
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”
…或者你可以使用字母(自定义格式)创build自己的date格式
StringFormat='MM/dd/yy' : “04/17/04” StringFormat='MMMM dd, yyyy g' : “April 17, 2004 AD” StringFormat='hh:mm:ss.fff tt' : “01:52:45.000 PM”
你也可以用
StringFormat=d
在date时间的datagrid列中显示
最后它会
<sdk:DataGridTextColumn Binding="{Binding Path=DeliveryDate,StringFormat=d}" Header="Delivery date" Width="*" />
输出将看起来像
C#:试试这个
- yyyy(yy / yyy) – 年
- MM – 月(如'03'),MMMM – 月(如'March')
- dd – 天(如09),ddd / dddd – 天(星期日/星期天)
- 每小时12小时(上午/下午),每小时24小时
- 毫米 – 分钟
- 秒 – 秒
使用一些分隔符,如下所示:
- MessageBox.Show(DateValue.ToString( “YYYY-MM-DD”)); 示例结果:“2014-09-30”
- 空格式string:MessageBox.Show(DateValue.ToString()); 示例结果:“30.09.2014 0:00:00”
在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\}'}">