zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C# string.Format

c# string format
2023-09-27 14:28:06 时间

一,DateTime

//date time 2008-01-13 16:05:07.123
DateTime dt = new DateTime(2008, 1, 13, 16, 5, 7, 123);
String.Format("{0:y yy yyy yyyy}", dt);		// "8 08 2008 2008"   year
String.Format("{0:M MM MMM MMMM}", dt);		// "1 01 一月 一月"  month
String.Format("{0:d dd ddd dddd}", dt);		// "13 13 周日 星期日" day
String.Format("{0:h hh H HH}", dt);		// "4 04 16 16"      hour 12/24
String.Format("{0:m mm}", dt);			// "5 05"            minute
String.Format("{0:s ss}", dt);			// "7 07"            second
String.Format("{0:f ff fff ffff}", dt);		// "1 12 123 1230"   sec.fraction
String.Format("{0:F FF FFF FFFF}", dt);		// "1 12 123 123"    without zeroes
String.Format("{0:t tt}", dt);			// "下 下午"            A.M. or P.M.
String.Format("{0:z zz zzz}", dt);		// "+8 +08 +08:00"   time zone

  

  Following table shows patterns defined in DateTimeForma­tInfo and their values for en-US culture. First column contains format specifiers for the String.Format method.

SpecifierDateTimeFormatInfo propertyPattern value (for en-US culture)
t ShortTimePattern h:mm tt
d ShortDatePattern M/d/yyyy
T LongTimePattern h:mm:ss tt
D LongDatePattern dddd, MMMM dd, yyyy
f (combination of D and t) dddd, MMMM dd, yyyy h:mm tt
F FullDateTimePattern dddd, MMMM dd, yyyy h:mm:ss tt
g (combination of d and t) M/d/yyyy h:mm tt
G (combination of d and T) M/d/yyyy h:mm:ss tt
m, M MonthDayPattern MMMM dd
y, Y YearMonthPattern MMMM, yyyy
r, R RFC1123Pattern ddd, dd MMM yyyy HH':'mm':'ss 'GMT' (*)
s SortableDateTi­mePattern yyyy'-'MM'-'dd'T'HH':'mm':'ss (*)
u UniversalSorta­bleDateTimePat­tern yyyy'-'MM'-'dd HH':'mm':'ss'Z' (*)
    (*) = culture independent

 

  Following examples show usage of standard format specifiers in String.Format method and the resulting output.

 1 String.Format("{0:t}", dt);  // "16:05"                         ShortTime
 2 String.Format("{0:d}", dt);  // "2008/1/13"                     ShortDate
 3 String.Format("{0:T}", dt);  // "16:05:07"                      LongTime
 4 String.Format("{0:D}", dt);  // "2008年1月13日"            LongDate
 5 String.Format("{0:f}", dt);  // "2008年1月13日 16:05"        LongDate+ShortTime
 6 String.Format("{0:F}", dt);  // "2008年1月13日 16:05:07"    FullDateTime
 7 String.Format("{0:g}", dt);  // "2008/1/13 16:05"               ShortDate+ShortTime
 8 String.Format("{0:G}", dt);  // "2008/1/13 16:05:07"            ShortDate+LongTime
 9 String.Format("{0:m}", dt);  // "1月13日"                       MonthDay
10 String.Format("{0:y}", dt);  // "2008年1月"                     YearMonth
11 String.Format("{0:r}", dt);  // "Sun, 13 Jan 2008 16:05:07 GMT" RFC1123
12 String.Format("{0:s}", dt);  // "2008-01-13T16:05:07"           SortableDateTime
13 String.Format("{0:u}", dt);  // "2008-01-13 16:05:07Z"          UniversalSortableDateTime

 二,自定义数字格式字符串

  1,The "0" custom format specifier("0"自定义说明符)

    用作占位符符号,比较简单,如果待设置的值在格式字符串中出现零的位置有数字,则显示数字;否则用零占位.(通过value.ToString()和String.Format()的效果一样),如

 1 double value;
 2 value = 123;
 3 String.Format("{0:00000}", value);
 4 //display:00123
 5 
 6 value = 1.2;
 7 String.Format(System.Globalization.CultureInfo.InvariantCulture,"{0:0.00}", value);
 8 //display:1.20
 9 
10 value = 1234567890;
11 String.Format(System.Globalization.CultureInfo.InvariantCulture,"{0:0,0}", value);
12 //display:1,234,567,890

  2,The "#" custom format specifier(#”自定义格式说明符)    

    用数字作占位符符号,当待设置的值在对应的位置有位置时,和 "0"自定义说明符 一样,不同的是,如果没有数字,则不存储任何值.如

1 value = 1.2;
2 String.Format(CultureInfo.InvariantCulture, "{0:#.##}", value);
3 // Displays 1.2

  3,","自定义说明符

    如果在整数格式串的数字占位符(0或#)之间指定一个或多个逗号,则在整数部分中每个数字组之间插入一个逗号,如

1 double value = 1234567890;
2 String.Format(CultureInfo.InvariantCulture, "{0:#,#}", value);
3 // Displays 1,234,567,890   

  以下为常用实例:

格式说明符

名称

说明

示例

“0”

零占位符

用对应的数字(如果存在)替换零;否则,将在结果字符串中显示零。

有关详细信息,请参阅“0”自定义说明符

1234.5678 ("00000") -> 01235

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46

“#”

数字占位符

用对应的数字(如果存在)替换“#”符号;否则,不会在结果字符串中显示任何数字。

有关详细信息,请参阅“#”自定义说明符

1234.5678 ("#####") -> 1235

0.45678 ("#.##", en-US) -> .46

0.45678 ("#.##", fr-FR) -> ,46

“.”

小数点

确定小数点分隔符在结果字符串中的位置。

有关详细信息,请参阅“.”自定义说明符

0.45678 ("0.00", en-US) -> 0.46

0.45678 ("0.00", fr-FR) -> 0,46

“,”

组分隔符和数字比例换算

用作组分隔符和数字比例换算说明符。 作为组分隔符时,它在各个组之间插入本地化的组分隔符字符。 作为数字比例换算说明符,对于每个指定的逗号,它将数字除以 1000。

有关详细信息,请参阅“,”自定义说明符

组分隔符说明符:

2147483647 ("##,#", en-US) -> 2,147,483,647

2147483647 ("##,#", es-ES) -> 2.147.483.647

比例换算说明符:

2147483647 ("#,#,,", en-US) -> 2,147

2147483647 ("#,#,,", es-ES) -> 2.147

“%”

百分比占位符

将数字乘以 100,并在结果字符串中插入本地化的百分比符号。

有关详细信息,请参阅“%”自定义说明符

0.3697 ("%#0.00", en-US) -> %36.97

0.3697 ("%#0.00", el-GR) -> %36,97

0.3697 ("##.0 %", en-US) -> 37.0 %

0.3697 ("##.0 %", el-GR) -> 37,0 %

“‰”

千分比占位符

将数字乘以 1000,并在结果字符串中插入本地化的千分比符号。

有关详细信息,请参阅“‰”自定义说明符

0.03697 ("#0.00‰", en-US) -> 36.97‰

0.03697 ("#0.00‰", ru-RU) -> 36,97‰

“E0”

“E+0”

“E-0”

“e0”

“e+0”

“e-0”

指数表示法

如果后跟至少一个 0(零),则使用指数表示法设置结果格式。 “E”或“e”指示指数符号在结果字符串中是大写还是小写。 跟在“E”或“e”字符后面的零的数目确定指数中的最小位数。 加号 (+) 指示符号字符总是置于指数前面。 减号 (-) 指示符号字符仅置于负指数前面。

有关详细信息,请参阅“E”和“e”自定义说明符

987654 ("#0.0e0") -> 98.8e4

1503.92311 ("0.0##e+00") -> 1.504e+03

1.8901385E-16 ("0.0e+00") -> 1.9e-16

\

转义符

使下一个字符被解释为文本而不是自定义格式说明符。

有关详细信息,请参阅“\”转义字符

987654 ("\###00\#") -> #987654#

'string'

string”

文本字符串分隔符

指示应复制到未更改的结果字符串的封闭字符。

68 ("# ' degrees'") -> 68 degrees

68 ("#' degrees'") -> 68 degrees

;

部分分隔符

通过分隔格式字符串定义正数、负数和零各部分。

有关详细信息,请参阅“;”部分分隔符

12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35

0 ("#0.0#;(#0.0#);-\0-") -> -0-

-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)

12.345 ("#0.0#;(#0.0#)") -> 12.35

0 ("#0.0#;(#0.0#)") -> 0.0

-12.345 ("#0.0#;(#0.0#)") -> (12.35)

其他

所有其他字符

字符将复制到未更改的结果字符串。

68 ("# °") -> 68 °

 

  标准格式数字说明符:

格式说明符

名称

说明

示例

“C”或“c”

Currency

结果:货币值。

受以下类型支持:所有数值类型。

精度说明符:小数位数。

默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。

更多信息:货币(“C”)格式说明符

123.456 ("C", en-US) -> $123.46

123.456 ("C", fr-FR) -> 123,46 €

123.456 ("C", ja-JP) -> ¥123

-123.456 ("C3", en-US) -> ($123.456)

-123.456 ("C3", fr-FR) -> -123,456 €

-123.456 ("C3", ja-JP) -> -¥123.456

“D”或“d”

小数

结果:整型数字,负号可选。

受以下类型支持:仅整型。

精度说明符:最小位数。

默认值精度说明符:所需的最小位数。

更多信息:十进制(“D”)格式说明符

1234 ("D") -> 1234

-1234 ("D6") -> -001234

“E”或“e”

指数(科学型)

结果:指数记数法。

受以下类型支持:所有数值类型。

精度说明符:小数位数。

默认值精度说明符:6。

更多信息:指数(“E”)格式说明符

1052.0329112756 ("E", en-US) -> 1.052033E+003

1052.0329112756 ("e", fr-FR) -> 1,052033e+003

-1052.0329112756 ("e2", en-US) -> -1.05e+003

-1052.0329112756 ("E2", fr_FR) -> -1,05E+003

“F”或“f”

定点

结果:整数和小数,负号可选。

受以下类型支持:所有数值类型。

精度说明符:小数位数。

默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。

更多信息:定点(“F”)格式说明符

1234.567 ("F", en-US) -> 1234.57

1234.567 ("F", de-DE) -> 1234,57

1234 ("F1", en-US) -> 1234.0

1234 ("F1", de-DE) -> 1234,0

-1234.56 ("F4", en-US) -> -1234.5600

-1234.56 ("F4", de-DE) -> -1234,5600

“G”或“g”

常规

结果:最紧凑的定点表示法或科学记数法。

受以下类型支持:所有数值类型。

精度说明符:有效位数。

默认值精度说明符:取决于数值类型。

更多信息:常规(“G”)格式说明符

-123.456 ("G", en-US) -> -123.456

123.456 ("G", sv-SE) -> -123,456

123.4546 ("G4", en-US) -> 123.5

123.4546 ("G4", sv-SE) -> 123,5

-1.234567890e-25 ("G", en-US) -> -1.23456789E-25

-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25

“N”或“n”

数字

结果:整数和小数、组分隔符和小数分隔符,负号可选。

受以下类型支持:所有数值类型。

精度说明符:所需的小数位数。

默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。

更多信息:数字(“N”)格式说明符

1234.567 ("N", en-US) -> 1,234.57

1234.567 ("N", ru-RU) -> 1 234,57

1234 ("N1", en-US) -> 1,234.0

1234 ("N1", ru-RU) -> 1 234,0

-1234.56 ("N3", en-US) -> -1,234.560

-1234.56 ("N3", ru-RU) -> -1 234,560

“P”或“p”

百分比

结果:乘以 100 并显示百分比符号的数字。

受以下类型支持:所有数值类型。

精度说明符:所需的小数位数。

默认值精度说明符:由 System.Globalization.NumberFormatInfo 定义。

更多信息:百分比(“P”)格式说明符

1 ("P", en-US) -> 100.00 %

1 ("P", fr-FR) -> 100,00 %

-0.39678 ("P1", en-US) -> -39.7 %

-0.39678 ("P1", fr-FR) -> -39,7 %

“R”或“r”

往返过程

结果:可以往返至相同数字的字符串。

受以下类型支持:SingleDouble 和 BigInteger

精度说明符:忽略。

更多信息:往返过程(“R”)格式说明符

123456789.12345678 ("R") -> 123456789.12345678

-1234567890.12345678 ("R") -> -1234567890.1234567

“X”或“x”

十六进制

结果:十六进制字符串。

受以下类型支持:仅整型。

精度说明符:结果字符串中的位数。

更多信息:十六进制(“X”)格式说明符

255 ("X") -> FF

-1 ("x") -> ff

255 ("x4") -> 00ff

-1 ("X4") -> 00FF

任何其他单个字符

未知说明符

结果:在运行时引发 FormatException