格式化概觀

.NET Framework 提供可自訂的一般用途格式化機制來將值轉換成適於顯示的字串。例如,數值可以使用十六進位、科學標記法或由使用者所指定標點符號分隔成組的連續數字來格式化。日期和時間可以格式化為適合特定國家、地區或文化特性。列舉的常數可以格式化為其數值或其名稱。

您可藉由指定格式字串和格式提供者,或藉由使用預設值來控制格式化。格式字串包含一個或更多的格式規範字元,以指示如何轉換數值。格式提供者會提供轉換特定型別時所需要的額外控制、取代和文化資訊。

您可以藉由實作 IFormattable 介面來覆寫 .NET Framework 解譯格式字串的方式;藉由實作 IFormatProvider 介面來提供自己的格式提供者;以及藉由實作 ICustomFormatter 介面來執行自己的格式化。

.NET Framework 提供稱為複合格式的功能,使用一個或更多的格式字串在結果字串中嵌入一個或更多的格式化值。結果字串可以用來作進一步處理,並顯示於系統主控台或寫入資料流。

格式規範

.NET Framework 為格式化數字、日期和時間,以及列舉型別定義了標準和自訂格式規範。格式規範可供各種會格式化輸出字串的方法 (例如 Console.WriteLine)、任何型別的 ToString 方法和一些會剖析輸入字串的方法 (例如 DateTime.ParseExact) 來使用。

如需格式化數值資料的詳細資訊,請參閱數值格式字串。如需常用數值格式規範的表格,請參閱標準數值格式字串;如需可用來建立自己的格式字串之自訂格式規範的表格,請參閱自訂數值格式字串

如需格式化日期和時間的詳細資訊,請參閱日期和時間格式字串。如需常用日期和時間格式規範的表格,請參閱標準 DateTime 格式字串;如需可用來建立自己的格式字串之自訂日期和時間格式規範的表格,請參閱自訂 DateTime 格式字串

如需格式化列舉型別的詳細資訊和標準列舉型別格式規範的表格,請參閱列舉型別格式字串

剖析和格式規範

格式化會將型別的值轉換成字串表示;剖析與格式化相反,它會從字串表示建立資料型別。格式提供者控制著剖析的執行方式,而有些方法 (例如 DateTime.ParseExact) 會接受格式規範參數以指示字串表示的預期格式。如需剖析的詳細資訊,請參閱剖析字串

ToString 和格式規範

.NET Framework 使用 ToString 的特殊版本 (它使用格式規範參數來指示如何將值格式化) 支援型別之預設 ToString 方法的多載化 (Overloading),它將執行初步的格式化。如需詳細資訊,請參閱格式化基底型別IFormattable 介面。

格式提供者

格式提供者將提供資訊,例如格式化數值字串時當做小數點的字元,或格式化 DateTime 物件時要使用的分隔字元。格式提供者定義格式規範所用來格式化的字元,但不定義規範本身。

格式提供者可被傳遞至 IFormattable 介面所需要的 ToString 多載,或者由您用以格式化文字的方法來預先決定 (如果沒有傳遞格式提供者的話)。

在沒有格式提供者被傳遞時,資訊不是由推斷而來,就是從 .NET Framework 中的其中一個標準格式提供者來取得。通常,實作 IFormattable 的類別也會提供只接受格式規範或只接受格式提供者的 ToString 多載。無需接受參數的預設 ToString 方法是繼承自 Object 類別。

如需數值資料的預先定義格式提供者的詳細資訊,請參閱 NumberFormatInfo。如需日期和時間的預先定義格式提供者的詳細資訊,請參閱 DateTimeFormatInfo。如需建立自訂格式提供者或不同文化特性格式提供者的詳細資訊,請參閱 CultureInfo不同文化特性的格式化

複合格式

.NET Framework 複合格式功能 (由例如 String.Format 的方法以及 System.ConsoleSystem.IO.TextWriter 的輸出方法所支援) 會以數值清單中對應項目的格式化對等項目來取代來源字串中內嵌的每一個索引格式項目。如需詳細資訊,請參閱複合格式

請參閱

參考

IFormattable Interface
IFormatProvider Interface
ICustomFormatter Interface

概念

數值格式字串
日期和時間格式字串
列舉型別格式字串
自訂格式字串
複合格式

其他資源

格式化型別
剖析字串
基本字串作業