ToString说明
ToString 是 .NET Framework 中主要的格式化方法。它将对象转换为其字符串表现形式,使它适合于显示。(有关对 .NET Framework 中的格式设置支持的更多信息,请参见 。)
ToString 方法的默认实现返回 的类型的完全限定名,如以下示例所示。
类型通常覆盖 ToString 方法以返回表示对象实例的字符串。例如,基础数据类型(如 , 和 )提供 ToString 实现该返回对象表示的值的字符串形式。下面的示例定义一个为 Object2 的类,该类重写 ToString 方法以返回类型名称以及其值。
对实现者的说明
当实现您自己的类型时,应重写 ToString 方法,以返回对这些类型有意义的值。需要比 ToString 提供的对格式设置的控制更多控制的派生类应实现 接口。其 方法使您能够定义控制格式设置的格式字符串,并使用可以为区域性特定的格式设置提供的 对象。
DateTime类型
DateTime.ToString()函数有四个重载。一般用得多的就是不带参数的那个了。殊不知,DateTime.ToString(string format)功能更强大,能输出不同格式的日期。以下把一些情况罗列出来,供大家参考。有些在MSDN上有的就没有列出来了。
1. y代表年份,注意是小写的y,大写的Y并不代表年份。
2. M表示月份。
3. d表示日期,注意D并不代表什么。
4. h或H表示小时,h用的是12小时制,H用的是24小时制。
5. m表示分钟。
6. s表示秒。注意S并不代表什么。
| 格式 | 输出 | 示例 |
| 组合使用格式 | ||
| 年 | ||
| y | 9 | string year = DateTime.Now.ToString("y-MM") year = "9-05" |
| yy | 09 | string year = DateTime.Now.ToString("yy-MM") year = "09-05" |
| yyy或更多的y | 2009 | string year = DateTime.Now.ToString("yyyy"); year="2009" |
| 月 | ||
| M | 5 | string mon = DateTime.Parse("1984-05-09").ToString("yyyy-M") mon = "1984-5" |
| MM | 05 | string mon = DateTime.Parse("1984-05-09").ToString("MM") mon = "05" |
| MMM | 如果是中文版的操作系统,则会输出:五月. 如果是英文操作系统,则输入月份前三个字母的简写:May | string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系统:Jul 中文版操作系统:七月 |
| MMMM或更多的M | 如果是中文版的操作系统,则会输出:五月 如果是英文操作系统,则输入月份的全写 | string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系统:July 中文版操作系统:七月 |
| 日期或星期 | ||
| d | 9 | string dd= DateTime.Parse("1984-05-09").ToString("d") dd = "9" |
| dd | 09 | string dd= DateTime.Parse("1984-05-09").ToString("dd") dd = "09" |
| ddd | 如果是中文版的操作系统,则会输出星期,如星期三 如果是英文操作系统,则输出星期的简写:如Wed | string dd = DateTime.Parse("2006-07-01").ToString("ddd") 英文版操作系统:Wed 中文版操作系统:星期三 |
| dddd或更多的d | 如果是中文版的操作系统,则会输出星期,如星期三 如果是英文操作系统,则输出星期:如Wednesday | string dd = DateTime.Parse("2006-07-01").ToString("ddd") 英文版操作系统:Wednesday 中文版操作系统:星期三 |
| 小时 | ||
| h | 小时范围:1-12 | string hour = DateTime.Now.ToString(“h”); hour = "8" |
| hh或更多的h | 小时范围:1-12 | string hour = DateTime.Now.ToString(“h”); hour = "08" |
| H | 小时范围:0-23 | string hour = DateTime.Now.ToString(“yyyy-H”); hour = "2006-8 " |
| HH或更多的H | 小时范围:0-23 | string hour = DateTime.Now.ToString(“yyyy-HH”); hour = "2006-08" string hour = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”); hour = "2006-18" |
| 分钟 | ||
| m | 6 | string minute = DateTime.Now.ToString("yyyy-MM-dd-m"); minute = "2006-07-01-6"; |
| mm或更多的m | 06 | string minute = DateTime.Now.ToString("yyyy-MM-dd-mm"); minute = "2006-07-01-06"; |
| 秒 | ||
| s | 6 | string second = DateTime.Now.ToString("yyyy-MM-dd-s"); second = "2006-07-01-6"; |
| ss或更多的s | 06 | string second = DateTime.Now.ToString("yyyy-MM-dd-ss"); second = "2006-07-01-06"; |
| 秒后精度 | ||
| f | 秒的小数精度为一位,其余数字被截断 | |
| ff | 秒的小数精度为两位,其余数字被截断 | |
| fff | 秒的小数精度为三位,其余数字被截断 | |
| ffff | 秒的小数精度为四位,其余数字被截断 | |
| fffff | 秒的小数精度为五位,其余数字被截断 | |
| ffffff | 秒的小数精度为六位,其余数字被截断 | |
| fffffff | 秒的小数精度为七位,其余数字被截断 | |
| 时区 | ||
| z | 时区偏移量("+"或"-"后面仅跟小时。一位数的小时没有前导0)。例如太平洋标准时间是"-8" | |
| zz | 时区偏移量("+"或"-"后面仅跟小时。一位数的小时有前导0)。例如太平洋标准时间是"-8" | |
| zzz | 完整时区偏移量("+"或"-"后面跟有小时和分钟)。例如太平洋标准时间是"-08:00" | |
| 上下午 | ||
| t | 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项的第一个字符(如果存在)。 | |
| tt | 在 AMDesignator 或 PMDesignator 中定义的 AM/PM 指示项(如果存在) | |
| 其它 | ||
| : | TimeSeparator中定义的默认时间分隔符 | |
| / | 在DateSparator中定义的默认日期分隔符 | |
| %c | 其它c是格式模式(如果单独使用)。如果格式模式与字符或其他格式模式合并,则可以省略"%"字符 | |
| "c | 其中c是任意字符。照原义显示字符。 | |
| 以下格式只能单独使用,表示特定的格式 | ||
| d | ShortDatePattern | |
| D | LongDatePattern | |
| f | 完整日期和时间(长日期和短时间) | |
| F | FullDateTimePattern(长日期和长时间) | |
| g | 常规(短日期和短时间) | |
| G | 常规(短日期和长时间) | |
| m、M | MonthDayPattern | |
| r、R | RFC1123Pattern | |
| s | 使用当地时间的 SortableDateTimePattern(基于 ISO 8601) | |
| t | ShortTimePattern | |
| T | LongTimePattern | |
| u | UniversalSortableDateTimePattern 用于显示通用时间的格式 | |
| U | 使用通用时间的完整日期和时间(长日期和长时间) | |
| y、Y | YearMonthPattern | |
int类型
Int.ToString(format):
格式字符串采用以下形式:Axx,其中 A 为格式说明符,指定格式化类型,xx 为精度说明符,控制格式化输出的有效位数或小数位数,具体如下:
格式说明符
| 符号 | 说明 | 示例 | 输出 |
| C | 货币 | 2.5.ToString("C") | ¥2.50 |
| D | 十进制数 | 25.ToString("D5") | 00025 |
| E | 科学型 | 25000.ToString("E") | 2.500000E+005 |
| F | 固定点 | 25.ToString("F2") | 25.00 |
| G | 常规 | 2.5.ToString("G") | 2.5 |
| N | 数字 | 2500000.ToString("N") | 2,500,000.00 |
| p | 百分比 | 0.25.ToString("P") | 25% |
| r | 1.42.ToString("R") | 1.42 | |
| X | 十六进制 | 255.ToString("X") | FF |
自定义数字格式字符串
格式符 说明
0 小数左取整 小数右占位
# 非0时数字占位
. 小数点
, 千分隔符
% 乘以100后加%表示
\ 转义序列
'' 字符串
"" 字符串
; 分割正数负数和零
格式字符串 数据类型 值 输出
##### Double 123 123
00000 Double 123 00123
(###) ### - #### Double 12345670 (123) 456 – 70
#.## Double 1.2 1.2
0.00 Double 1.2 1.20
00.00 Double 1.2 01.20
#,# Double 12345670 1,234,567,0
#,, Double 12345670 1235
#,,, Double 12345670 1
#,##0,, Double 12345670 1,235
#0.##% Double 0.086 8.6%
0.###E+0 Double 86000 8.6E+4
0.###E+000 Double 86000 8.6E+004
0.###E-000 Double 86000 8.6E004
[##-##-##] Double 123456 [12-34-56]
##;(##) Double 1234 1234
##;(##) Double -1234 (1234)