格式化包括字符串, 数字, 日期, 枚举等类型数据的格式化

格式项语法

每个格式项都采用下面的形式并包含以下组件:

{ 索引[,对齐][:格式字符串]}

必须使用成对的大括号(“{”和“}”)。 

 
索引:索引是一个由0开始的整数,0表示第一个对应的对象,1表示第二,以此类推.

Console.WriteLine("{0}+{1}={2}",23,45,23+45);

 
对齐: 可选,是一个带符号的整数,用于设置对应对象的字段宽度,如果数值小于对象字符串的宽度,自动被忽略,如果“对齐”为正数,字段中设置了格式的数据为右对齐;如果“对齐”为负数,字段中的设置了格式的数据为左对齐。 

Console.WriteLine("{0,5}"12);
Console.WriteLine("{0,13}", DateTime.Now.ToString("yyyy-MM-dd"));


格式化字符串:如果相应对象是数值,则指定数字格式字符串,如果相应对象是 DateTime 对象,则指定日期和时间格式字符串,或者如果相应对象是枚举值,则指定枚举格式字符串。 
1.标准的数学格式字符串
字母     含义
C或c    Currency 货币格式
D或d    Decimal 十进制格式(十进制整数,不要和.Net的Decimal数据类型混淆了)
E或e    Exponent 指数格式
F或f     Fixed point 固定精度格式
G或g   General 常用格式
N或n   用逗号分割千位的数字,比如1234将会被变成1,234
P或p   Percentage 百分符号格式
R或r   Round-trip   圆整(只用于浮点数)保证一个数字被转化成字符串以后可以再被转回成同样的数字
X或x   Hex 16进制格式

int i = 123456;
Console.WriteLine("{0:C}", i); // ¥123,456.00
Console.WriteLine("{0:D}", i); // 123456
Console.WriteLine("{0:E}", i); // 1.234560E+005
Console.WriteLine("{0:F}", i); // 123456.00
Console.WriteLine("{0:G}", i); // 123456
Console.WriteLine("{0:N}", i); // 123,456.00
Console.WriteLine("{0:P}", i); // 12,345,600.00 %
Console.WriteLine("{0:X}", i); // 1E240

  

2.标准日期和时间格式字符串
d       MM/dd/yyyy ShortDatePattern(短日期模式)
D       dddd,MMMM dd,yyyy     LongDatePattern(长日期模式) 
f        dddd,MMMM dd,yyyy HH:mm Full date and time (long date and short time)(短时间模式)
F        dddd,MMMM dd,yyyy HH:mm:ss FullDateTimePattern (long date and long time)(长时间模式) 
g        MM/dd/yyyy HH:mm General (short date and short time)(通用模式,短日期和短时间)
G        MM/dd/yyyy HH:mm:ss General (short date and long time)(通用模式,长日期和长时间)
m,M    MMMM dd   MonthDayPattern(月天模式)
r,R      ddd,dd MMM yyyy,HH':'mm':'ss 'GMT' RFC1123Pattern (RFC1123模式) 
s        yyyy-MM-dd HH:mm:ss   SortableDateTimePattern (conforms to ISO 8601) using local time(使用本地时间的可排序模式) 
t        HH:mm   ShortTimePattern (短时间模式)
T        HH:mm:ss LongTimePattern(长时间模式) 
u      yyyy-MM-dd HH:mm:ss UniversalSortable-DateTimePattern (conforms to ISO 8601) using universal time(通用可排序模式)
U      dddd,MMMM dd,yyyy,HH:mm:ss UniversalSortable-DateTimePattern(通用可排序模式)
y,Y   MMMM,yyyy YearMonthPattern(年月模式) 

Console.WriteLine("{0:d}", DateTime.Now);//2011/11/13
Console.WriteLine("{0:D}", DateTime.Now);//2011年11月13日
Console.WriteLine("{0:f}", DateTime.Now);//2011年11月13日 20:54
Console.WriteLine("{0:F}", DateTime.Now);//2011年11月13日 20:54:28
Console.WriteLine("{0:g}", DateTime.Now);//2011/11/13 20:54
Console.WriteLine("{0:G}", DateTime.Now);//2011/11/13 20:54:28
Console.WriteLine("{0:m}", DateTime.Now);//11月13日
Console.WriteLine("{0:M}", DateTime.Now);//11月13日
Console.WriteLine("{0:r}", DateTime.Now);//Sun, 13 Nov 2011 20:54:28 GMT
Console.WriteLine("{0:R}", DateTime.Now);//Sun, 13 Nov 2011 20:54:28 GMT
Console.WriteLine("{0:s}", DateTime.Now);//2011-11-13T20:54:28
Console.WriteLine("{0:t}", DateTime.Now);//20:54
Console.WriteLine("{0:T}", DateTime.Now);//20:54:28
Console.WriteLine("{0:u}", DateTime.Now);//2011-11-13 20:54:28Z
Console.WriteLine("{0:U}", DateTime.Now);//2011年11月13日 12:54:28
Console.WriteLine("{0:y}", DateTime.Now);//2011年11月
Console.WriteLine("{0:Y}", DateTime.Now);//2011年11月

参考MSDN  String.Format 方法
 

3.自定义的数学格式字符串

4.自定义日期和时间格式字符串

原文地址:https://www.cnblogs.com/answercard/p/2247529.html