格式项都采用如下形式:
{index[,alignment][:formatString]}
其中"index"指索引占位符,这个肯定都知道;
",alignment"按字面意思显然是对齐方式,以","为标记;
":formatString"就是对输出格式的限定,以":"为标记。
alignment:可选,是一个带符号的整数,指示首选的格式化字段宽度。如果“对齐”值小于格式化字符串的长度,“对齐”会被忽略,并且使用格式化字符串的长度作为字段宽度。如果“对齐”为正数,字段的格式化数据为右对齐;如果“对齐”为负数,字段的格式化数据为左对齐。如果需要填充,则使用空白。如果指定“对齐”,就需要使用逗号。
formatString:由标准或自定义格式说明符组成.
下表是从网上得来:
字符 | 说明 | 示例 | 输出 |
C | 货币 | string.Format("{0:C3}", 2) | $2.000 |
D | 十进制 | string.Format("{0:D3}", 2) | 002 |
E | 科学计数法 | 1.20E+001 | 1.20E+001 |
G | 常规 | string.Format("{0:G}", 2) | 2 |
N | 用分号隔开的数字 | string.Format("{0:N}", 250000) | 250,000.00 |
X | 十六进制 | string.Format("{0:X000}", 12) | C |
|
| string.Format("{0:000.000}", 12.2) | 012.200 |
Specifier | Type | Format | Output | Output |
c | Currency | {0:c} | $1.42 | -$12,400 |
d | Decimal (Whole number) | {0:d} | System. | -12400 |
e | Scientific | {0:e} | 1.420000e+000 | -1.240000e+004 |
f | Fixed point | {0:f} | 1.42 | -12400.00 |
g | General | {0:g} | 1.42 | -12400 |
n | Number with commas for thousands | {0:n} | 1.42 | -12,400 |
r | Round trippable | {0:r} | 1.42 | System. |
x | Hexadecimal | {0:x4} | System. | cf90 |
Specifier | Type | Example (Passed System.DateTime.Now) |
d | Short date | 10/12/2002 |
D | Long date | December 10, 2002 |
t | Short time | 10:11 PM |
T | Long time | 10:11:29 PM |
f | Full date & time | December 10, 2002 10:11 PM |
F | Full date & time (long) | December 10, 2002 10:11:29 PM |
g | Default date & time | 10/12/2002 10:11 PM |
G | Default date & time (long) | 10/12/2002 10:11:29 PM |
M | Month day pattern | December 10 |
r | RFC1123 date string | Tue, 10 Dec 2002 22:11:29 GMT |
s | Sortable date string | 2002-12-10T22:11:29 |
u | Universal sortable, local time | 2002-12-10 22:13:50Z |
U | Universal sortable, GMT | December 11, 2002 3:13:50 AM |
Y | Year month pattern | December, 2002 |
Specifier | Type | Example | Example Output |
dd | Day | {0:dd} | 10 |
ddd | Day name | {0:ddd} | Tue |
dddd | Full day name | {0:dddd} | Tuesday |
f, ff, ... | Second fractions | {0:fff} | 932 |
gg, ... | Era | {0:gg} | A.D. |
hh | 2 digit hour | {0:hh} | 10 |
HH | 2 digit hour, 24hr format | {0:HH} | 22 |
mm | Minute 00-59 | {0:mm} | 38 |
MM | Month 01-12 | {0:MM} | 12 |
MMM | Month abbreviation | {0:MMM} | Dec |
MMMM | Full month name | {0:MMMM} | December |
ss | Seconds 00-59 | {0:ss} | 46 |
tt | AM or PM | {0:tt} | PM |
yy | Year, 2 digits | {0:yy} | 02 |
yyyy | Year | {0:yyyy} | 2002 |
zz | Timezone offset, 2 digits | {0:zz} | -05 |
zzz | Full timezone offset | {0:zzz} | -05:00 |
: | Separator | {0:hh:mm:ss} | 10:43:20 |
/ | Separator | {0:dd/MM/yyyy} | 10/12/2002 |
示例:
//Console.WriteLine 中各种数据格式的输出
Console.WriteLine("{0,8 :C}",2); //$2.00
Console.WriteLine("{0,8 :C3}",2); //$2.000
Console.WriteLine("{0:D3}",2); //002
Console.WriteLine("{0:E}",2); //2.000000E+000
Console.WriteLine("{0:G}",2); //2
Console.WriteLine("{0:N}",2500000.00); //2,500,00.00
Console.WriteLine("{0:x4}",12); // 000c
Console.WriteLine("{0,2 :x}",12); // c
Console.WriteLine("{0:000.000}",12.23); //012.230
Console.WriteLine("{0:r}",15.62); //15.62
Console.WriteLine("{0:d}", System.DateTime.Now); // 2012-3-27
Console.WriteLine("{0:D}", System.DateTime.Now); // 2012年3月27日
Console.WriteLine("{0:t}", System.DateTime.Now); //11:43
Console.WriteLine("{0:T}", System.DateTime.Now); //11:43:34
Console.WriteLine("{0:f}", System.DateTime.Now); //2012年3月27日 11:43
Console.WriteLine("{0:F}", System.DateTime.Now); //2012年3月27日 11:43:34
Console.WriteLine("{0:g}", System.DateTime.Now); // 2012-3-2711:43
Console.WriteLine("{0:G}", System.DateTime.Now); // 2012-3-2711:43:34
Console.WriteLine("{0:M}", System.DateTime.Now); // 3月27日
Console.WriteLine("{0:r}", System.DateTime.Now);// Tue, 27 Mar 201211:43:34 GMT
Console.WriteLine("{0:s}", System.DateTime.Now); // 2012-03-27T11:43:34
Console.WriteLine("{0:u}", System.DateTime.Now); // 2012-03-2711:43:34Z
Console.WriteLine("{0:U}", System.DateTime.Now); //2012年3月27日 3:43:34
Console.WriteLine("{0:Y}", System.DateTime.Now); //2012年3月
Console.WriteLine("{0:dd}", System.DateTime.Now); //27
Console.WriteLine("{0:ddd}", System.DateTime.Now); // 二
Console.WriteLine("{0:dddd}", System.DateTime.Now);// 星期二
Console.WriteLine("{0:f}", System.DateTime.Now); //2012年3月27日 11:46
Console.WriteLine("{0:ff}", System.DateTime.Now); //18
Console.WriteLine("{0:fff}", System.DateTime.Now); //187
Console.WriteLine("{0:ffff}", System.DateTime.Now); // 1875
Console.WriteLine("{0:fffff}", System.DateTime.Now); // 18750
Console.WriteLine("{0:gg}", System.DateTime.Now); // 公元
Console.WriteLine("{0:ggg}", System.DateTime.Now); // 公元
Console.WriteLine("{0:gggg}", System.DateTime.Now); // 公元
Console.WriteLine("{0:ggggg}", System.DateTime.Now); // 公元
Console.WriteLine("{0:gggggg}", System.DateTime.Now); // 公元
Console.WriteLine("{0:hh}", System.DateTime.Now); //11
Console.WriteLine("{0:HH}", System.DateTime.Now); //11
Console.WriteLine("{0:mm}", System.DateTime.Now); //50
Console.WriteLine("{0:MM}", System.DateTime.Now); //03
Console.WriteLine("{0:MMM}", System.DateTime.Now); // 三月
Console.WriteLine("{0:MMMM}", System.DateTime.Now);// 三月
Console.WriteLine("{0:ss}", System.DateTime.Now); //43
Console.WriteLine("{0:tt}", System.DateTime.Now); // 上午
Console.WriteLine("{0:yy}", System.DateTime.Now); //12
Console.WriteLine("{0:yyyy}", System.DateTime.Now); // 2012
Console.WriteLine("{0:zz}", System.DateTime.Now); //+08
Console.WriteLine("{0:zzz}", System.DateTime.Now); //+08:00
Console.WriteLine("{0:hh:mm:ss}", System.DateTime.Now); //11:43:34
Console.WriteLine("{0:dd/MM/yyyy}", System.DateTime.Now);// 27-03-2012