WPF 文本中使用StringFormat对时间进行格式化输出

 1、StringFormat介绍

    官方说法:StringFormat是封装文本布局信息(如对齐方式、方向和制表位)、显示操作(如省略号插入和区域数字替换)和 OpenType 功能。 此类不能被继承。

**************************************************************************************************************

2、使用StringFormat进行格式化输出。使用TextBlock控件进行显示,具体代码如下

1.先加如下命名空间
xmlns:sys="clr-namespace:System;assembly=mscorlib" 
2.然后添加下面控件
<TextBlock Text="{Binding Source={x:Static sys:DateTime.Now}, StringFormat=yyyy/MM/dd HH:mm:ss}"/>

**************************************************************************************************************

3、其他格式化输出如下代码

<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:d}}" /> // 5/4/2015
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:D}}" /> // Monday, May 04, 2015
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:f}}" /> // Monday, May 04, 2015 5:46 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:F}}" /> // Monday, May 04, 2015 5:46:56 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:g}}" /> // 5/4/2015 5:46 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:G}}" /> // 5/4/2015 5:46:56 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:m}}" /> // May 04
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:M}}" /> // May 04
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:t}}" /> // 5:46 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:T}}" /> // 5:46:56 PM
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:yyyy年MM月dd日}}" /> // 2015年05月04日
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd}}" /> // 2015-05-04
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd HH:mm}}" /> // 2015-05-04 17:46
<TextBlock Text="{Binding DateTimeNow, StringFormat={}{0:yyyy-MM-dd HH:mm:ss}}" /> // 2015-05-04 17:46:56

**************************************************************************************************************

4、效果图

**************************************************************************************************************

5、总结和扩展

    StringFormat可以对货币格式化、指定小数有效位数、占位符、百分比、使用分号分隔开数字等

货币格式
<TextBlock Text="{Binding Price, StringFormat={}{0:C}}" /> // $123.46
货币格式,一位小数
<TextBox Text="{Binding Price, StringFormat={}{0:C1}}" /> // $123.5
前文字
<TextBox Text="{Binding Price, StringFormat=单价:{0:C}}" /> //单价:$123.46
后文字
<TextBox Text="{Binding Price, StringFormat={}{0}元}" /> // 123.45678元
固定的位数,位数不能少于未格式化前,仅支持整形
<TextBox Text="{Binding Count, StringFormat={}{0:D6}}" /> // 086723
指定小数点后的位数
<TextBox Text="{Binding Total, StringFormat={}{0:F4}}" /> // 28768234.9329
用分号隔开的数字,并指定小数点后的位数
<TextBox Text="{Binding Total, StringFormat={}{0:N3}}" /> // 28,768,234.933
格式化百分比
<TextBox Text="{Binding Persent, StringFormat={}{0:P1}}" /> // 78.9 %
占位符
<TextBox Text="{Binding Price, StringFormat={}{0:0000.00}}" /> // 0123.46
<TextBox Text="{Binding Price, StringFormat={}{0:####.##}}" /> // 123.46

**************************************************************************************************************

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值