我有一个Silverlight 4应用程序。我有一个C#DateTime对象,我绑定到我的UI。我希望此DateTime的格式为dd/mm/yyyy
time(TimeZone)。例如,今天将显示为
04/07/2011 at 01:13 p.m. (EST)
有没有办法做到这一点XAML
?或者我需要构建转换器吗?
答案 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="*" />
输出将看起来像
答案 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#:试试这个
使用一些分隔符,如下所示:
答案 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"/>