格式化日期时间为人类可读(例如消息应用程序)

格式化日期时间为人类可读(例如消息应用程序)

问题描述:

如何格式化DateTime绑定以使其看起来像消息传递中心一样完全(或尽可能相似)。格式化日期时间为人类可读(例如消息应用程序)

以下块是我理想的使用,以显示它的代码,或将我只需要放弃使用转换器?

<TextBlock TextAlignment="Right"> 
    <TextBlock.Text> 
     <Binding Path="Time" 
       StringFormat="*String format here?*"/> 
    </TextBlock.Text> 
</TextBlock> 

我的目标,结果如下:

  • 12:17(时间)如果今天
  • 周三,18:10(日+时间),如果7天内
  • 01/04,如果15:58 7天以上的
+1

像他们在下面说的,你需要使用一个转换器,但我强烈建议你尝试自己写这个转换器。了解如何编写转换器是Silverlight/WPF/WP7开发中的关键技巧。 – Robaticus 2012-04-12 11:54:24

+0

感谢您的建议,我同意他们会有用!我正在研究写一个转换器。然而,这不是做这件事的地方,我只是测试了工具包提供的DateTime转换器,并且他们执行了很多特定于区域的更改,我不想通过不按日期格式化他们想要的方式来惹恼用户! – 2012-04-12 12:08:03

+0

可以理解(也是一个很好的考虑)。 – Robaticus 2012-04-12 12:18:01

您可能需要实施日期为字符串转换器,它会产生你正在寻找特定的文本,为t他需要的逻辑量超出了StringFormat属性的范围。

有关详细信息,尤其是ThreadDateTimeConverter: -

http://www.windowsphonegeek.com/articles/Windows-Phone-Toolkit-DateTime-Converters

使用来自Silverlight for Windows Phone Toolkit的DateTimeConverters之一!

您可以检查here了解有关DateTimeConverters用法的一些信息。