格式化概述

更新:2007 年 11 月

.NET Framework 提供了可自定义的、适于常规用途的格式设置机制,可将值转换为适合显示的字符串。例如,可以将数值设置为以下格式:十六进制、科学记数法或者由用户指定的标点符号分隔成组的一系列数字。可以将日期和时间设置为适合于特定的国家、地区或区域性的格式。可以将枚举常数设置为它的数值或名称的格式。

您可以通过指定格式字符串和格式提供程序或使用默认设置来控制格式设置。格式字符串包含一个或多个格式说明符字符,以指示如何转换值。格式提供程序提供了转换特定类型所需的其他控制、替换和区域性等方面的信息。

您可以通过实现 IFormattable 接口来重写 .NET Framework 解释格式字符串的方式;通过实现 IFormatProvider 接口来提供自己的格式提供程序;通过实现 ICustomFormatter 接口来执行自己的格式设置。

.NET Framework 提供了名为复合格式设置的功能,此功能可使用一个或多个格式字符串将一个或多个设置了格式的值嵌入到输出字符串中。输出字符串可用于进行进一步处理,显示到系统控制台或者写入到流。

格式说明符

.NET Framework 定义了标准和自定义格式说明符,用于设置数字、日期和时间以及枚举的格式。格式说明符由下列方法使用:设置输出字符串格式的各种方法(例如 Console.WriteLine)、某些类型的 ToString 方法的个别重载、某些分析输入字符串的方法(例如 ParseDateTime.ParseExact)。

有关为数字数据设置格式的信息,请参见数字格式字符串。有关常用的数字格式说明符的列表,请参见标准数字格式字符串;有关自定义格式说明符(可用于创建自己的格式字符串)的列表,请参见自定义数字格式字符串

关于为日期和时间设置格式的信息,请参见日期与时间格式字符串。有关常用日期和时间格式说明符的列表,请参见标准 DateTime 格式字符串;有关自定义时间和日期格式说明符(可用于创建自己的格式字符串)的列表,请参见自定义 DateTime 格式字符串

有关执行某些特定的格式设置操作(例如从特定日期中提取星期几,或使用非公历日历显示日期)的信息,请参见格式化帮助主题

有关为枚举设置格式的信息,以及标准枚举格式说明符的列表,请参见枚举格式字符串

分析和格式说明符

格式设置将类型的值转化为字符串表示形式;分析则与格式设置相反,它是从字符串表示形式创建数据类型。格式提供程序控制如何执行分析,有些方法(例如 DateTime.ParseExact)采用格式说明符参数,可指示字符串表示形式的预期格式。有关分析的更多信息,请参见分析字符串

ToString 和格式说明符

.NET Framework 支持重载类型的默认 ToString 方法,该方法执行基本的格式设置操作,ToString 的专用版本使用格式说明符参数来指示如何为值设置格式。有关更多信息,请参见为基类型设置格式以及 IFormattable 接口。

格式提供程序

格式提供程序提供诸如此类的信息:为数值字符串设置格式时要用作小数点的字符、为 DateTime 对象设置格式时要使用的分隔字符。格式提供程序定义格式说明符用于设置格式的字符,但不定义说明符本身。

格式提供程序可被传递到 IFormattable 接口所需的 ToString 的重载;如果没有传递格式提供程序,则使用为文本设置格式的方法预先确定该程序。

如果没有传递格式提供程序,将推断相关信息或从 .NET Framework 中包含的某个标准格式提供程序中获取该信息。通常,实现 IFormattable 的类也提供 ToString 的重载,这些重载只接受格式说明符或格式提供程序。默认的 ToString 方法(不接受任何参数)是从 Object 类继承的。

有关数值数据的预定义格式提供程序的信息,请参见 NumberFormatInfo。有关日期和时间的预定义格式提供程序的信息,请参见 DateTimeFormatInfo。有关创建自定义格式提供程序或为不同区域性创建格式提供程序的信息,请参见 CultureInfo不同区域性的格式设置如何:定义和使用自定义数值格式提供程序

复合格式设置

.NET Framework 的复合格式设置功能受 String.Format 以及 System.ConsoleSystem.IO.TextWriter 的输出方法等方法支持,该功能可以将嵌入源字符串中的每个索引格式项替换为值列表中对应元素的设置了格式的等效项。有关更多信息,请参见复合格式设置

请参见

概念

数字格式字符串

日期与时间格式字符串

枚举格式字符串

自定义格式字符串

复合格式化

格式化帮助主题

参考

IFormattable

IFormatProvider

ICustomFormatter

其他资源

格式化类型

分析字符串

基本字符串操作