关键字:C# string.format
作者:txw1958
原文:http://www.cnblogs.com/txw1958/archive/2012/11/15/csharp-string_format.html
字符串
| 示例 | 输出 |
| String.Format("->{1,10}<-", "Hello"); | -> Hello<- |
| String.Format("->{1,-10}<-", "Hello"); | ->Hello <- |
数字
基本数字格式示例:
| 字符 | 类型 | 示例 | 输出 | 输出 |
| 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 |
自定义数字格式:
| 字符 | 类型 | 示例 | 输出 (Double 1500.42) | Note |
| 0 | Zero placeholder 0占位符 | {0:00.0000} | 1500.4200 | Pads with zeroes.用0填充 |
| # | Digit placeholder 数字占位符 | {0:(#).##} | (1500).42 | |
| . | Decimal point 小数点 | {0:0.0} | 1500.4 | |
| , | Thousand separator千位分隔符 | {0:0,0} | 1,500 | Must be between two zeroes. |
| ,. | Number scaling 数字缩放 | {0:0,.} | 2 | Comma adjacent to Period scales by 1000. |
| % | Percent 百分数 | {0:0%} | 150042% | Multiplies by 100, adds % sign. |
| e | Exponent laceholder指数占位符 | {0:00e+0} | 15e+2 | Many exponent formats available.许多指数格式可用 |
| ; | Group separator 群分隔符 | see below 见下 | especially useful for formatting currency |
日期
| 字符 | 类型 | 示例(System.DateTime.Now) |
| d | Short date 短日期 | 10/12/2012 |
| D | Long date 长日期 | December 10, 2012 |
| t | Short time 短时间 | 10:11 PM |
| T | Long time 长时间 | 10:11:29 PM |
| f | Full date & time 长日期和短时间 | December 10, 2012 10:11 PM |
| F | Full date & time (long) 长日期和长时间 | December 10, 2012 10:11:29 PM |
| g | Default date & time 短日期和短时间 | 10/12/2012 10:11 PM |
| G | Default date & time (long) 短日期和长时间 | 10/12/2012 10:11:29 PM |
| M | Month day pattern 月日模式 | December 10 |
| r | RFC1123 date string RFC1123日期字符串 | Tue, 10 Dec 2012 22:11:29 GMT |
| s | Sortable date string 短日期字符串 | 2012-12-10T22:11:29 |
| u | Universal sortable, local time 通用,本地时间 | 2012-12-10 22:13:50Z |
| U | Universal sortable, GMT 通用 GMT | December 11, 2012 3:13:50 AM |
| Y | Year month pattern 年月模式 | December, 2012 |
自定义日期格式:
| 字符 | 类型 | 示例 | 输出 |
| 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 12小时制的小时,2位数 | {0:hh} | 10 |
| HH | 2 digit hour, 24hr format 24 小时制的小时,2位数 | {0:HH} | 22 |
| mm | Minute 00-59 分钟,2位数 | {0:mm} | 38 |
| MM | Month 01-12 月份数字,2位数 | {0:MM} | 12 |
| MMM | Month abbreviation 月份的缩写名称 | {0:MMM} | Dec |
| MMMM | Full month name 月份的完整名称 | {0:MMMM} | December |
| ss | Seconds 00-59 秒,2位数 | {0:ss} | 46 |
| tt | AM or PM AM/PM 指示项 | {0:tt} | PM |
| yy | Year, 2 digits 不包含纪元的年份 | {0:yy} | 02 |
| yyyy | Year 包括纪元的四位数的年份 | {0:yyyy} | 2012 |
| zz | Timezone offset, 2 digits 时区偏移量,2位数 | {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/2012 |
枚举
| 字符 | 类型 |
| g | Default (Flag names if available, otherwise decimal) |
| f | Flags always |
| d | Integer always |
| x | Eight digit hex. |
其他
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);
负数的时候输出括号,0的时候输出Zero
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 12345.00)
将输出$12,345.00
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", -12345.00)
将输出($12,345.00)
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", 0.00)
输出zero
String.Format("{0:(###) ###-####}", 18005551212)
输出(1800) 555-1212
本文详细介绍了C#中字符串格式化的使用方法,包括关键字、示例、数字格式、日期格式、枚举格式以及自定义格式等内容。
418

被折叠的 条评论
为什么被折叠?



