格式化日期时间为人类可读(例如消息应用程序)
问题描述:
如何格式化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天以上的
答
您可能需要实施日期为字符串转换器,它会产生你正在寻找特定的文本,为t他需要的逻辑量超出了StringFormat属性的范围。
有关详细信息,尤其是ThreadDateTimeConverter: -
http://www.windowsphonegeek.com/articles/Windows-Phone-Toolkit-DateTime-Converters
答
使用来自Silverlight for Windows Phone Toolkit的DateTimeConverters之一!
您可以检查here了解有关DateTimeConverters用法的一些信息。
像他们在下面说的,你需要使用一个转换器,但我强烈建议你尝试自己写这个转换器。了解如何编写转换器是Silverlight/WPF/WP7开发中的关键技巧。 – Robaticus 2012-04-12 11:54:24
感谢您的建议,我同意他们会有用!我正在研究写一个转换器。然而,这不是做这件事的地方,我只是测试了工具包提供的DateTime转换器,并且他们执行了很多特定于区域的更改,我不想通过不按日期格式化他们想要的方式来惹恼用户! – 2012-04-12 12:08:03
可以理解(也是一个很好的考虑)。 – Robaticus 2012-04-12 12:18:01