在StringFormatter中表达日期时间格式字符串

时间:2014-01-27 14:44:11

标签: c# silverlight xaml datetime datetime-format

在XAML中,我有类似的东西:

Text="{Binding my_date, StringFormat=\{0:ddd M/d/yy\}}"

目前它输出的内容如 Mon 12/23/13

我希望它能够遵守区域和语言设置日期时间格式,因此如果他们选择yy / mm / dd,它应该以正确的格式显示日期。我知道pa“d”应该这样做,从这里开始:http://msdn.microsoft.com/en-us/library/az4se3k1%28v=vs.110%29.aspx

但出于某种原因,当它与格式化程序的其余部分合并为

Text="{Binding my_date, StringFormat=\{0:ddd d\}}"

然后它无法正常工作。在这种情况下我应该使用的正确格式是什么?

1 个答案:

答案 0 :(得分:1)

Standardcustom字符串不能合并为单个字符串格式。这需要分两步完成:

var weekday = my_date.ToString("ddd");
var day = my_date.ToString("d");
var both = string.Format("{0} {1}", weekday, day);

在XAML中,这将更加冗长,但以下内容应该有效(这是未经测试的):

<TextBlock.Text>
    <MultiBinding StringFormat="\{0\} \{1\}">
          <Binding Path="my_date" StringFormat="ddd" />
          <Binding Path="my_date" StringFormat="d" />
    </MultiBinding>
</TextBlock.Text>