数据的格式化,其实就是数据类型到字符串的数据转换,只不过,这种转换的级别更加高。
.NET Framework 提供了一种一致、灵活而且全面的方式,使您能够将任何数值、枚举以及日期和时间等基数据类型表示为字符串。格式化由格式说明符字符的字符串控制,该字符串指示如何表示基类型值。
除了对于数据格式的显示提供了方法,.NET Framework 还使用区域性设置,以便用适合于特定区域性的形式表示基类型。您可以提供自定义的区域性设置,或者使用与当前线程关联的默认区域性设置。
.NET Framework 提供了 标准数字格式字符串,标准 DateTime 格式字符串,枚举格式字符串
以下代码描述了标准数字格式字符串的方式
1

double d = 1234.5678;
2

System.Console.WriteLine("数字原型/t{0}", d.ToString());//1234.5678
3

System.Console.WriteLine("货币格式/t{0}", d.ToString("C"));//¥1,234.57
4

System.Console.WriteLine("十进制格式/t{0}", ((int)d).ToString("D"));//1234
5

System.Console.WriteLine("指数格式/t{0}", d.ToString("E"));//1.234568E+003
6

System.Console.WriteLine("固定点格式/t{0}", d.ToString("F"));//1234.57
7

System.Console.WriteLine("固定点格式3精度/t{0}", d.ToString("F3"));//1234.568
8

System.Console.WriteLine("常规制格/t{0}", d.ToString("G"));//1234.5678
9

System.Console.WriteLine("数字格式/t{0}", d.ToString("N"));//1,234.57
10

System.Console.WriteLine("数字格式精度1/t{0}", d.ToString("N1"));//1,234.6
11

System.Console.WriteLine("百分比格式/t{0}", d.ToString("P"));//123,456.78%
12

System.Console.WriteLine("百分比格式2精度/t{0}", d.ToString("P2"));//123,456.78%
13

System.Console.WriteLine("往返过程格式/t{0}", d.ToString("R"));//1234.5678
14

System.Console.WriteLine("十六进制格式/t{0}", ((int)d).ToString("X"));//4D2
以下代码描述了,日期格式化的简单方式

DateTime dt = DateTime.Now;

System.Console.WriteLine("短日期模式/t{0}", dt.ToString("d"));//2007-2-16

System.Console.WriteLine("长日期模式/t{0}", dt.ToString("D"));//2007年2月16日

System.Console.WriteLine("短时间模式/t{0}", dt.ToString("t"));//21:50

System.Console.WriteLine("长时间模式/t{0}", dt.ToString("T"));//21:50:19

System.Console.WriteLine("短完整模式/t{0}", dt.ToString("f"));//2007年2月16日 21:50

System.Console.WriteLine("长完整模式/t{0}", dt.ToString("F"));//2007年2月16日 21:50:19

System.Console.WriteLine("短常规模式/t{0}", dt.ToString("g"));//2007-2-16 21:50

System.Console.WriteLine("长常规模式/t{0}", dt.ToString("G"));//2007-2-16 21:50:19

System.Console.WriteLine("RFC1132模式/t{0}", dt.ToString("R"));//Fri, 16 Feb 2007 21:50:19 GMT

System.Console.WriteLine("ISO8601模式/t{0}", dt.ToString("s"));//2007-02-16T21:50:19

System.Console.WriteLine("通用模式/t{0}", dt.ToString("u"));//2007-02-16 21:50:19Z

System.Console.WriteLine("通用模式/t{0}", dt.ToString("U"));//2007年2月16日 13:50:19

System.Console.WriteLine("年月模式/t{0}", dt.ToString("Y"));//2007年2月
日期的格式化,还允许自定义的方式
下面代码描述了日期的自定义格式


System.Console.WriteLine("当前日期/t{0}",dt.ToString("今天是d号"));

System.Console.WriteLine("有前导的当前日期/t{0}", dt.ToString("今天是dd号"));

System.Console.WriteLine("日期缩写/t{0}", dt.ToString("今天是ddd"));

System.Console.WriteLine("日期全名/t{0}", dt.ToString("今天是dddd"));

System.Console.WriteLine("秒/t{0}", dt.ToString("现在的秒是f"));

System.Console.WriteLine("秒的最高7位/t{0}", dt.ToString("现在秒是fffffff"));

System.Console.WriteLine("年代/t{0}", dt.ToString("现在是g纪年"));

System.Console.WriteLine("1-12小时模式/t{0}", dt.ToString("现在是hh点"));

System.Console.WriteLine("0-23小时模式/t{0}", dt.ToString("现在是HH点"));

System.Console.WriteLine("分钟/t{0}", dt.ToString("现在是mm分钟"));

System.Console.WriteLine("月份/t{0}", dt.ToString("现在是MM月"));

System.Console.WriteLine("月缩写/t{0}", dt.ToString("现在是MMM"));

System.Console.WriteLine("月全名/t{0}", dt.ToString("现在是MMMM"));
15

System.Console.WriteLine("A.M./P.M/t{0}", dt.ToString("现在是t"));
16

System.Console.WriteLine("A.M./P.M/t{0}", dt.ToString("现在是tt"));
17

System.Console.WriteLine("秒/t{0}", dt.ToString("现在是ss"));
18

System.Console.WriteLine("年/t{0}", dt.ToString("现在是y年"));
19

System.Console.WriteLine("年/t{0}", dt.ToString("现在是yy年"));
20

System.Console.WriteLine("年/t{0}", dt.ToString("现在是yyyy年"));
21

System.Console.WriteLine("标准时差/t{0}", dt.ToString("现在是z"));
22

System.Console.WriteLine("标准时差/t{0}", dt.ToString("现在是zz"));
23

System.Console.WriteLine("现在的时间是:{0}", dt.ToString("g yyyy年 MM月 dd日 tt HH:mm:ss 和标准时差zz"));
24

本文转自shyleoking 51CTO博客,原文链接:http://blog.51cto.com/shyleoking/806262