C#中string.format用法詳解

string.Format對C#字符串格式化

String.Format 方法的幾種定義:html

String.Format (String, Object) 將指定的 String 中的格式項替換爲指定的 Object 實例的值的文本等效項。
String.Format (String, Object[]) 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。
String.Format (IFormatProvider, String, Object[]) 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。指定的參數提供區域性特定的格式設置信息。
String.Format (String, Object, Object) 將指定的 String 中的格式項替換爲兩個指定的 Object 實例的值的文本等效項。  
String.Format (String, Object, Object, Object) 將指定的 String 中的格式項替換爲三個指定的 Object 實例的值的文本等效項。
 
經常使用的格式化數值結果表
 
數組

字符ide

說明post

示例測試

輸出url

C 貨幣 string.Format("{0:C3}", 2) $2.000
D 十進制 string.Format("{0:D3}", 2) 002
E 科學計數法 1.20E+001 1.20E+001
G 常規 string.Format("{0:G}", 2) 2
N 用分號隔開的數字 string.Format("{0:N}", 250000) 250,000.00
X 十六進制 string.Format("{0:X000}", 12) C
    string.Format("{0:000.000}", 12.2) 012.200


經常使用的幾種實例
 
一、字符串的數字格式spa

 

 

 代碼以下:
string str1 =string.Format("{0:N1}",56789);               //result: 56,789.0
 string str2 =string.Format("{0:N2}",56789);               //result: 56,789.00
 string str3 =string.Format("{0:N3}",56789);               //result: 56,789.000
 string str8 =string.Format("{0:F1}",56789);               //result: 56789.0
 string str9 =string.Format("{0:F2}",56789);               //result: 56789.00
 string str11 =(56789 / 100.0).ToString("#.##");           //result: 567.89
 string str12 =(56789 / 100).ToString("#.##");             //result: 567
 string str = string.Format("{0:f2}", .2);                   //result: 0.20


 
二、格式化貨幣(跟系統的環境有關,中文系統默認格式化人民幣,英文系統格式化美圓)
操作系統

 代碼以下:
string.Format("{0:C}",0.2)

結果爲:¥0.20 (英文操做系統結果:$0.20)
默認格式化小數點後面保留兩位小數,若是須要保留一位或者更多,能夠指定位數code

 代碼以下:
string.Format("{0:C1}",23.15)

結果爲:¥23.2 (截取會自動四捨五入)
格式化多個Object實例orm

 代碼以下:
string.Format("市場價:{0:C},優惠價{1:C}",23.15,19.82)


 
三、格式化十進制的數字(格式化成固定的位數,位數不能少於未格式化前,只支持整形)

 代碼以下:
string.Format("{0:D3}",23) //結果爲:023
string.Format("{0:D2}",1223) //結果爲:1223,(精度說明符指示結果字符串中所需的最少數字個數。)


 
四、用分號隔開的數字,並指定小數點後的位數

 代碼以下:
string.Format("{0:N}", 14200) //結果爲:14,200.00 (默認爲小數點後面兩位)
string.Format("{0:N3}", 14200.2458) //結果爲:14,200.246 (自動四捨五入)
 
五、格式化百分比
string.Format("{0:P}", 0.24583) //結果爲:24.58% (默認保留百分的兩位小數)

string.Format("{0:P1}", 0.24583) //結果爲:24.6% (自動四捨五入)


 
六、零佔位符和數字佔位符

 代碼以下:
string.Format("{0:0000.00}", 12394.039) //結果爲:12394.04
string.Format("{0:0000.00}", 194.039) //結果爲:0194.04
string.Format("{0:###.##}", 12394.039) //結果爲:12394.04
string.Format("{0:####.#}", 194.039) //結果爲:194


 
下面的這段說明比較難理解,多測試一下實際的應用就能夠明白了。
零佔位符: 若是格式化的值在格式字符串中出現「0」的位置有一個數字,則此數字被複制到結果字符串中。小數點前最左邊的「0」的位置和小數點後最右邊的「0」的位置肯定總在結果字符串中出現的數字範圍。 「00」說明符使得值被舍入到小數點前最近的數字,其中零位總被捨去。
數字佔位符: 若是格式化的值在格式字符串中出現「#」的位置有一個數字,則此數字被複制到結果字符串中。不然,結果字符串中的此位置不存儲任何值。
請注意,若是「0」不是有效數字,此說明符永不顯示「0」字符,即便「0」是字符串中惟一的數字。若是「0」是所顯示的數字中的有效數字,則顯示「0」字符。 「##」格式字符串使得值被舍入到小數點前最近的數字,其中零總被捨去。
 
七、日期格式化
 

 代碼以下:
string.Format("{0:d}",System.DateTime.Now) //結果爲:2009-3-20 (月份位置不是03)
string.Format("{0:D}",System.DateTime.Now) //結果爲:2009年3月20日
string.Format("{0:f}",System.DateTime.Now) //結果爲:2009年3月20日 15:37
string.Format("{0:F}",System.DateTime.Now) //結果爲:2009年3月20日 15:37:52
string.Format("{0:g}",System.DateTime.Now) //結果爲:2009-3-20 15:38
string.Format("{0:G}",System.DateTime.Now) //結果爲:2009-3-20 15:39:27
string.Format("{0:m}",System.DateTime.Now) //結果爲:3月20日
string.Format("{0:t}",System.DateTime.Now) //結果爲:15:41
string.Format("{0:T}",System.DateTime.Now) //結果爲:15:41:50

 

 

 

 

 

 

一、格式化貨幣(跟系統的環境有關,中文系統默認格式化人民幣,英文系統格式化美圓)

string.Format("{0:C}",0.2) 結果爲:¥0.20 (英文操做系統結果:$0.20)

默認格式化小數點後面保留兩位小數,若是須要保留一位或者更多,能夠指定位數
string.Format("{0:C1}",23.15) 結果爲:¥23.2 (截取會自動四捨五入)

格式化多個Object實例
string.Format("市場價:{0:C},優惠價{1:C}",23.15,19.82)

二、格式化十進制的數字(格式化成固定的位數,位數不能少於未格式化前,只支持整形)

string.Format("{0:D3}",23) 結果爲:023

string.Format("{0:D2}",1223) 結果爲:1223,(精度說明符指示結果字符串中所需的最少數字個數。)

三、用分號隔開的數字,並指定小數點後的位數

string.Format("{0:N}", 14200) 結果爲:14,200.00 (默認爲小數點後面兩位)

string.Format("{0:N3}", 14200.2458) 結果爲:14,200.246 (自動四捨五入)

四、格式化百分比

string.Format("{0:P}", 0.24583) 結果爲:24.58% (默認保留百分的兩位小數)

string.Format("{0:P1}", 0.24583) 結果爲:24.6% (自動四捨五入)

五、零佔位符和數字佔位符

string.Format("{0:0000.00}", 12394.039) 結果爲:12394.04

string.Format("{0:0000.00}", 194.039) 結果爲:0194.04

string.Format("{0:###.##}", 12394.039) 結果爲:12394.04

string.Format("{0:####.#}", 194.039) 結果爲:194

下面的這段說明比較難理解,多測試一下實際的應用就能夠明白了。
零佔位符:
若是格式化的值在格式字符串中出現「0」的位置有一個數字,則此數字被複制到結果字符串中。小數點前最左邊的「0」的位置和小數點後最右邊的「0」的位置肯定總在結果字符串中出現的數字範圍。
「00」說明符使得值被舍入到小數點前最近的數字,其中零位總被捨去。

數字佔位符:
若是格式化的值在格式字符串中出現「#」的位置有一個數字,則此數字被複制到結果字符串中。不然,結果字符串中的此位置不存儲任何值。 
請注意,若是「0」不是有效數字,此說明符永不顯示「0」字符,即便「0」是字符串中惟一的數字。若是「0」是所顯示的數字中的有效數字,則顯示「0」字符。 
「##」格式字符串使得值被舍入到小數點前最近的數字,其中零總被捨去。

PS:空格佔位符

string.Format("{0,-50}", theObj);//格式化成50個字符,原字符左對齊,不足則補空格
string.Format("{0,50}", theObj);//格式化成50個字符,原字符右對齊,不足則補空格

六、日期格式化

string.Format("{0:d}",System.DateTime.Now) 結果爲:2009-3-20 (月份位置不是03)

string.Format("{0:D}",System.DateTime.Now) 結果爲:2009年3月20日

string.Format("{0:f}",System.DateTime.Now) 結果爲:2009年3月20日 15:37

string.Format("{0:F}",System.DateTime.Now) 結果爲:2009年3月20日 15:37:52

string.Format("{0:g}",System.DateTime.Now) 結果爲:2009-3-20 15:38

string.Format("{0:G}",System.DateTime.Now) 結果爲:2009-3-20 15:39:27

string.Format("{0:m}",System.DateTime.Now) 結果爲:3月20日

string.Format("{0:t}",System.DateTime.Now) 結果爲:15:41

string.Format("{0:T}",System.DateTime.Now) 結果爲:15:41:50


更詳細的說明請下面微軟對此的說明或者上msdn上查詢。

微軟MSDN對string.format的方法說明:

名稱 說明 
String.Format (String, Object) 將指定的 String 中的格式項替換爲指定的 Object 實例的值的文本等效項。 
String.Format (String, Object[]) 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。 
String.Format (IFormatProvider, String, Object[]) 將指定 String 中的格式項替換爲指定數組中相應 Object 實例的值的文本等效項。指定的參數提供區域性特定的格式設置信息。 
String.Format (String, Object, Object) 將指定的 String 中的格式項替換爲兩個指定的 Object 實例的值的文本等效項。 
String.Format (String, Object, Object, Object) 將指定的 String 中的格式項替換爲三個指定的 Object 實例的值的文本等效項。

標準數字格式字符串

格式說明符 名稱 說明 
C 或 c
貨幣
數字轉換爲表示貨幣金額的字符串。轉換由當前 NumberFormatInfo 對象的貨幣格式信息控制。

精度說明符指示所需的小數位數。若是省略精度說明符,則使用當前 NumberFormatInfo 對象給定的默認貨幣精度。

D 或 d
十進制數
只有整型才支持此格式。數字轉換爲十進制數字 (0-9) 的字符串,若是數字爲負,則前面加負號。

精度說明符指示結果字符串中所需的最少數字個數。若是須要的話,則用零填充該數字的左側,以產生精度說明符給定的數字個數。

E 或 e
科學記數法(指數)
數字轉換爲「-d.ddd…E+ddd」或「-d.ddd…e+ddd」形式的字符串,其中每一個「d」表示一個數字 (0-9)。若是該數字爲負,則該字符串以減號開頭。小數點前總有一個數字。

精度說明符指示小數點後所需的位數。若是省略精度說明符,則使用默認值,即小數點後六位數字。

格式說明符的大小寫指示在指數前加前綴「E」仍是「e」。指數老是由正號或負號以及最少三位數字組成。若是須要,用零填充指數以知足最少三位數字的要求。

F 或 f
定點
數字轉換爲「-ddd.ddd…」形式的字符串,其中每一個「d」表示一個數字 (0-9)。若是該數字爲負,則該字符串以減號開頭。

精度說明符指示所需的小數位數。若是忽略精度說明符,則使用當前 NumberFormatInfo 對象給定的默認數值精度。

G 或 g
常規
根據數字類型以及是否存在精度說明符,數字會轉換爲定點或科學記數法的最緊湊形式。若是精度說明符被省略或爲零,則數字的類型決定默認精度,以下表所示。

Byte 或 SByte:3

Int16 或 UInt16:5

Int32 或 UInt32:10

Int64 或 UInt64:19

Single:7

Double:15

Decimal:29

若是用科學記數法表示數字時指數大於 -5 並且小於精度說明符,則使用定點表示法;不然使用科學記數法。若是要求有小數點,而且忽略尾部零,則結果包含小數點。若是精度說明符存在,而且結果的有效數字位數超過指定精度,則經過舍入刪除多餘的尾部數字。

上述規則有一個例外:若是數字是 Decimal 並且省略精度說明符時。在這種狀況下總使用定點表示法並保留尾部零。

使用科學記數法時,若是格式說明符是「G」,結果的指數帶前綴「E」;若是格式說明符是「g」,結果的指數帶前綴「e」。 

N 或 n
數字
數字轉換爲「-d,ddd,ddd.ddd…」形式的字符串,其中「-」表示負數符號(若是須要),「d」表示數字 (0-9),「,」表示數字組之間的千位分隔符,「.」表示小數點符號。實際的負數模式、數字組大小、千位分隔符以及十進制分隔符由當前 NumberFormatInfo 對象指定。

精度說明符指示所需的小數位數。若是忽略精度說明符,則使用當前 NumberFormatInfo 對象給定的默認數值精度。

P 或 p
百分比
數字轉換爲由 NumberFormatInfo.PercentNegativePattern 或 NumberFormatInfo.PercentPositivePattern 屬性定義的、表示百分比的字符串,前者用於數字爲負的狀況,後者用於數字爲正的狀況。已轉換的數字乘以 100 以表示爲百分比。

精度說明符指示所需的小數位數。若是忽略精度說明符,則使用當前 NumberFormatInfo 對象給定的默認數值精度。

R 或 r
往返過程
只有 Single 和 Double 類型支持此格式。往返過程說明符保證轉換爲字符串的數值再次被分析爲相同的數值。使用此說明符格式化數值時,首先使用常規格式對其進行測試:Double 使用 15 位精度,Single 使用 7 位精度。若是此值被成功地分析回相同的數值,則使用常規格式說明符對其進行格式化。可是,若是此值未被成功地分析爲相同數值,則它這樣格式化:Double 使用 17 位精度,Single 使用 9 位精度。

雖然此處能夠存在精度說明符,但它將被忽略。使用此說明符時,往返過程優先於精度。 

X 或 x
十六進制數
只有整型才支持此格式。數字轉換爲十六進制數字的字符串。格式說明符的大小寫指示對大於 9 的十六進制數字使用大寫字符仍是小寫字符。例如,使用「X」產生「ABCDEF」,使用「x」產生「abcdef」。

精度說明符指示結果字符串中所需的最少數字個數。若是須要的話,則用零填充該數字的左側,以產生精度說明符給定的數字個數。 

任何其餘單個字符
(未知說明符)
(未知說明符將引起運行庫格式異常。)


自定義數字格式字符串

格式說明符 名稱 說明 
0
零佔位符
若是格式化的值在格式字符串中出現「0」的位置有一個數字,則此數字被複制到結果字符串中。小數點前最左邊的「0」的位置和小數點後最右邊的「0」的位置肯定總在結果字符串中出現的數字範圍。

「00」說明符使得值被舍入到小數點前最近的數字,其中零位總被捨去。例如,用「00」格式化 34.5 將獲得值 35。

#
數字佔位符
若是格式化的值在格式字符串中出現「#」的位置有一個數字,則此數字被複制到結果字符串中。不然,結果字符串中的此位置不存儲任何值。

請注意,若是「0」不是有效數字,此說明符永不顯示「0」字符,即便「0」是字符串中惟一的數字。若是「0」是所顯示的數字中的有效數字,則顯示「0」字符。

「##」格式字符串使得值被舍入到小數點前最近的數字,其中零總被捨去。例如,用「##」格式化 34.5 將獲得值 35。

.
小數點
格式字符串中的第一個「.」字符肯定格式化的值中的小數點分隔符的位置;任何其餘「.」字符被忽略。

用做小數點分隔符的實際字符由控制格式化的 NumberFormatInfo 的 NumberDecimalSeparator 屬性肯定。

,
千位分隔符和數字比例換算
「,」字符可做爲千位分隔符說明符和數字比例換算說明符。

千位分隔符說明符:若是在兩個數字佔位符(0 或 #)之間指定一個或多個「,」字符用於設置數字整數位的格式,則在輸出的整數部分中每一個數字組之間插入一個組分隔符字符。

當前 NumberFormatInfo 對象的 NumberGroupSeparator 和 NumberGroupSizes 屬性將肯定用做數字組分隔符的字符以及每一個數字組的大小。例如,若是使用字符串「#,#」和固定區域性對數字 1000 進行格式化,則輸出爲「1,000」。

數字比例換算說明符:若是在緊鄰顯式或隱式小數點的左側指定一個或多個「,」字符,則每出現一個數字比例換算說明符便將要格式化的數字除以 1000。例如,若是使用字符串「0,,」對數字 1000000000 進行格式化,則輸出爲「100」。

能夠在同一格式字符串中使用千位分隔符說明符和數字比例換算說明符。例如,若是使用字符串「#,0,,」和固定區域性對數字 10000000000 進行格式化,則輸出爲「1,000」。 

%
百分比佔位符
在格式字符串中出現「%」字符將致使數字在格式化以前乘以 100。適當的符號插入到數字自己在格式字符串中出現「%」的位置。使用的百分比字符由當前的 NumberFormatInfo 類肯定。

E0

E+0

E-0

e0

e+0

e-0
科學記數法
若是「E」、「E+」、「E-」、「e」、「e+」或「e-」中的任何一個字符串出如今格式字符串中,並且後面緊跟至少一個「0」字符,則數字用科學記數法來格式化,在數字和指數之間插入「E」或「e」。跟在科學記數法指示符後面的「0」字符數肯定指數輸出的最小位數。「E+」和「e+」格式指示符號字符(正號或負號)應老是置於指數前面。「E」、「E-」、「e」或「e-」格式指示符號字符僅置於負指數前面。

\
轉義符
在 C# 和 C++ 中,反斜槓字符使格式字符串中的下一個字符被解釋爲轉義序列。它與傳統的格式化序列一塊兒使用,如「\n」(換行)。

在某些語言中,轉義符自己用做文本時必須跟在轉義符以後。不然,編譯器將該字符理解爲轉義符。使用字符串「\\」顯示「\」。

請注意,Visual Basic 中不支持此轉義符,可是 ControlChars 提供相同的功能。

’ABC’

"ABC"
字符串
引在單引號或雙引號中的字符被複制到結果字符串中,並且不影響格式化。

;
部分分隔符
「;」字符用於分隔格式字符串中的正數、負數和零各部分。

其餘
全部其餘字符
全部其餘字符被複制到結果字符串中,並且不影響格式化。


標準 DateTime 格式字符串

格式說明符 名稱 說明 
d
短日期模式
表示由當前 ShortDatePattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「MM/dd/yyyy」。

D
長日期模式
表示由當前 LongDatePattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「dddd, dd MMMM yyyy」。

f
完整日期/時間模式(短期)
表示長日期 (D) 和短期 (t) 模式的組合,由空格分隔。

F
完整日期/時間模式(長時間)
表示由當前 FullDateTimePattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「dddd, dd MMMM yyyy HH:mm:ss」。

g
常規日期/時間模式(短期)
表示短日期 (d) 和短期 (t) 模式的組合,由空格分隔。

G
常規日期/時間模式(長時間)
表示短日期 (d) 和長時間 (T) 模式的組合,由空格分隔。

M 或 m
月日模式
表示由當前 MonthDayPattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「MMMM dd」。

o
往返日期/時間模式
表示使用保留時區信息的模式的自定義 DateTime 格式字符串。該模式專用於往返 DateTime 格式(包括文本形式的 Kind 屬性)。隨後將 Parse 或 ParseExact 與正確的 Kind 屬性值一塊兒使用能夠對格式化的字符串進行反向分析。

自定義格式字符串爲「yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK」。

用於此說明符的模式是定義的標準。所以,不管所使用的區域性或所提供的格式提供程序是什麼,它老是相同的。

R 或 r
RFC1123 模式
表示由當前 RFC1123Pattern 屬性定義的自定義 DateTime 格式字符串。該模式是定義的標準,而且屬性是隻讀的。所以,不管所使用的區域性或所提供的格式提供程序是什麼,它老是相同的。

定義格式字符串爲「ddd, dd MMM yyyy HH':'mm':'ss 'GMT'」。

格式化不會修改正在格式化的 DateTime 對象的值。所以,應用程序在使用此格式說明符以前必須將該值轉換爲協調世界時 (UTC)。

s
可排序的日期/時間模式;符合 ISO 8601
表示由當前 SortableDateTimePattern 屬性定義的自定義 DateTime 格式字符串。此模式是定義的標準,而且屬性是隻讀的。所以,不管所使用的區域性或所提供的格式提供程序是什麼,它老是相同的。

自定義格式字符串爲「yyyy'-'MM'-'dd'T'HH':'mm':'ss」。

t
短期模式
表示由當前 ShortTimePattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「HH:mm」。

T
長時間模式
表示由當前 LongTimePattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「HH:mm:ss」。

u
通用的可排序日期/時間模式
表示由當前 UniversalSortableDateTimePattern 屬性定義的自定義 DateTime 格式字符串。此模式是定義的標準,而且屬性是隻讀的。所以,不管所使用的區域性或所提供的格式提供程序是什麼,它老是相同的。

自定義格式字符串爲「yyyy'-'MM'-'dd HH':'mm':'ss'Z'」。

格式化日期和時間時不進行時區轉換。所以,應用程序在使用此格式說明符以前必須將本地日期和時間轉換爲協調世界時 (UTC)。

U
通用的可排序日期/時間模式
表示由當前 FullDateTimePattern 屬性定義的自定義 DateTime 格式字符串。

此模式與完整日期/長時間 (F) 模式相同。可是,格式化將做用於等效於正在格式化的 DateTime 對象的協調世界時 (UTC)。

Y 或 y
年月模式
表示由當前 YearMonthPattern 屬性定義的自定義 DateTime 格式字符串。

例如,用於固定區域性的自定義格式字符串爲「yyyy MMMM」。

任何其餘單個字符
(未知說明符)
未知說明符將引起運行時格式異常。


自定義 DateTime 格式字符串

格式說明符 說明 
d
將月中日期表示爲從 1 至 31 的數字。一位數字的日期設置爲不帶前導零的格式。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

dd
將月中日期表示爲從 01 至 31 的數字。一位數字的日期設置爲帶前導零的格式。

ddd
將一週中某天的縮寫名稱表示爲當前 System.Globalization.DateTimeFormatInfo.AbbreviatedDayNames 屬性中定義的名稱。

dddd(另加任意數量的「d」說明符) 
將一週中某天的全名錶示爲當前 System.Globalization.DateTimeFormatInfo.DayNames 屬性中定義的名稱。

f
表示秒部分的最高有效位。

請注意,若是「f」格式說明符單獨使用,沒有其餘格式說明符,則該說明符被看做是「f」標準 DateTime 格式說明符(完整日期/時間模式)。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

將此格式說明符與 ParseExact 或 TryParseExact 方法一塊兒使用時,所用「f」格式說明符的數目指示要分析的秒部分的最高有效位位數。 

ff
表示秒部分的兩個最高有效位。

fff
表示秒部分的三個最高有效位。

ffff
表示秒部分的四個最高有效位。

fffff
表示秒部分的五個最高有效位。

ffffff
表示秒部分的六個最高有效位。

fffffff
表示秒部分的七個最高有效位。

F
表示秒部分的最高有效位。若是該位爲零,則不顯示任何信息。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

將此格式說明符與 ParseExact 或 TryParseExact 方法一塊兒使用時,所用「F」格式說明符的數目指示要分析的秒部分的最高有效位最大位數。

FF
表示秒部分的兩個最高有效位。但不顯示尾隨零(或兩個零位)。

FFF
表示秒部分的三個最高有效位。但不顯示尾隨零(或三個零位)。

FFFF
表示秒部分的四個最高有效位。但不顯示尾隨零(或四個零位)。

FFFFF
表示秒部分的五個最高有效位。但不顯示尾隨零(或五個零位)。

FFFFFF
表示秒部分的六個最高有效位。但不顯示尾隨零(或六個零位)。

FFFFFFF
表示秒部分的七個最高有效位。但不顯示尾隨零(或七個零位)。

g 或 gg(另加任意數量的「g」說明符) 
表示時期或紀元(例如 A.D.)。若是要設置格式的日期不具備關聯的時期或紀元字符串,則忽略該說明符。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

h
將小時表示爲從 1 至 12 的數字,即經過 12 小時製表示小時,自午夜或中午開始對整小時計數。所以,午夜後通過的某特定小時數與中午事後的相同小時數沒法加以區分。小時數不進行舍入,一位數字的小時數設置爲不帶前導零的格式。例如,給定時間爲 5:43,則此格式說明符顯示「5」。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

hh, hh(另加任意數量的「h」說明符) 
將小時表示爲從 01 至 12 的數字,即經過 12 小時製表示小時,自午夜或中午開始對整小時計數。所以,午夜後通過的某特定小時數與中午事後的相同小時數沒法加以區分。小時數不進行舍入,一位數字的小時數設置爲帶前導零的格式。例如,給定時間爲 5:43,則此格式說明符顯示「05」。

H
將小時表示爲從 0 至 23 的數字,即經過從零開始的 24 小時製表示小時,自午夜開始對小時計數。一位數字的小時數設置爲不帶前導零的格式。 

HH, HH(另加任意數量的「H」說明符) 
將小時表示爲從 00 至 23 的數字,即經過從零開始的 24 小時製表示小時,自午夜開始對小時計數。一位數字的小時數設置爲帶前導零的格式。 

K
表示 DateTime.Kind 屬性的不一樣值,即「Local」、「Utc」或「Unspecified」。此說明符以文本形式循環設置 Kind 值並保留時區。若是 Kind 值爲「Local」,則此說明符等效於「zzz」說明符,用於顯示本地時間偏移量,例如「-07:00」。對於「Utc」類型值,該說明符顯示字符「Z」 以表示 UTC 日期。對於「Unspecified」類型值,該說明符等效於「」(無任何內容)。

m
將分鐘表示爲從 0 至 59 的數字。分鐘表示自前一小時後通過的整分鐘數。一位數字的分鐘數設置爲不帶前導零的格式。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

mm, mm(另加任意數量的「m」說明符) 
將分鐘表示爲從 00 至 59 的數字。分鐘表示自前一小時後通過的整分鐘數。一位數字的分鐘數設置爲帶前導零的格式。

M
將月份表示爲從 1 至 12 的數字。一位數字的月份設置爲不帶前導零的格式。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

MM
將月份表示爲從 01 至 12 的數字。一位數字的月份設置爲帶前導零的格式。

MMM
將月份的縮寫名稱表示爲當前 System.Globalization.DateTimeFormatInfo.AbbreviatedMonthNames 屬性中定義的名稱。

MMMM
將月份的全名錶示爲當前 System.Globalization.DateTimeFormatInfo.MonthNames 屬性中定義的名稱。

s
將秒錶示爲從 0 至 59 的數字。秒錶示自前一分鐘後通過的整秒數。一位數字的秒數設置爲不帶前導零的格式。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

ss, ss(另加任意數量的「s」說明符) 
將秒錶示爲從 00 至 59 的數字。秒錶示自前一分鐘後通過的整秒數。一位數字的秒數設置爲帶前導零的格式。

t
表示當前 System.Globalization.DateTimeFormatInfo.AMDesignator 或 System.Globalization.DateTimeFormatInfo.PMDesignator 屬性中定義的 A.M./P.M. 指示符的第一個字符。若是正在格式化的時間中的小時數小於 12,則使用 A.M. 指示符;不然使用 P.M. 指示符。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

tt, tt(另加任意數量的「t」說明符) 
將 A.M./P.M. 指示符表示爲當前 System.Globalization.DateTimeFormatInfo.AMDesignator 或 System.Globalization.DateTimeFormatInfo.PMDesignator 屬性中定義的內容。若是正在格式化的時間中的小時數小於 12,則使用 A.M. 指示符;不然使用 P.M. 指示符。

y
將年份表示爲最多兩位數字。若是年份多於兩位數,則結果中僅顯示兩位低位數。若是年份少於兩位數,則該數字設置爲不帶前導零的格式。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

yy
將年份表示爲兩位數字。若是年份多於兩位數,則結果中僅顯示兩位低位數。若是年份少於兩位數,則用前導零填充該數字使之達到兩位數。

yyy
將年份表示爲三位數字。若是年份多於三位數,則結果中僅顯示三位低位數。若是年份少於三位數,則用前導零填充該數字使之達到三位數。

請注意,對於年份能夠爲五位數的泰國佛曆,此格式說明符將顯示所有五位數。 

yyyy
將年份表示爲四位數字。若是年份多於四位數,則結果中僅顯示四位低位數。若是年份少於四位數,則用前導零填充該數字使之達到四位數。

請注意,對於年份能夠爲五位數的泰國佛曆,此格式說明符將呈現所有五位數。 

yyyyy(另加任意數量的「y」說明符)
將年份表示爲五位數字。若是年份多於五位數,則結果中僅顯示五位低位數。若是年份少於五位數,則用前導零填充該數字使之達到五位數。

若是存在額外的「y」說明符,則用所需個數的前導零填充該數字使之達到「y」說明符的數目。 

z
表示系統時間距格林威治時間 (GMT) 以小時爲單位測量的帶符號時區偏移量。例如,位於太平洋標準時區中的計算機的偏移量爲「-8」。

偏移量始終顯示爲帶有前導符號。加號 (+) 指示小時數早於 GMT,減號 (-) 指示小時數遲於 GMT。偏移量範圍爲 –12 至 +13。一位數字的偏移量設置爲不帶前導零的格式。偏移量受夏時制影響。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

zz
表示系統時間距格林威治時間 (GMT) 以小時爲單位測量的帶符號時區偏移量。例如,位於太平洋標準時區中的計算機的偏移量爲「-08」。

偏移量始終顯示爲帶有前導符號。加號 (+) 指示小時數早於 GMT,減號 (-) 指示小時數遲於 GMT。偏移量範圍爲 –12 至 +13。一位數字的偏移量設置爲帶前導零的格式。偏移量受夏時制影響。

zzz, zzz(另加任意數量的「z」說明符) 
表示系統時間距格林威治時間 (GMT) 以小時和分鐘爲單位測量的帶符號時區偏移量。例如,位於太平洋標準時區中的計算機的偏移量爲「-08:00」。

偏移量始終顯示爲帶有前導符號。加號 (+) 指示小時數早於 GMT,減號 (-) 指示小時數遲於 GMT。偏移量範圍爲 –12 至 +13。一位數字的偏移量設置爲帶前導零的格式。偏移量受夏時制影響。

:
當前 System.Globalization.DateTimeFormatInfo.TimeSeparator 屬性中定義的時間分隔符,用於區分小時、分鐘和秒。

/
當前 System.Globalization.DateTimeFormatInfo.DateSeparator 屬性中定義的日期分隔符,用於區分年、月和日。

"
帶引號的字符串(引號)。顯示兩個引號 (") 之間的任意字符串的文本值。在每一個引號前使用轉義符 (\)。 

'
帶引號的字符串(撇號)。顯示兩個撇號 (') 字符之間的任意字符串的文本值。

%c
當自定義 DateTime 格式字符串只包含自定義格式說明符「c」時,表示與該自定義格式說明符關聯的結果。也就是說,若要單獨使用自定義格式說明符「d」、「f」、「F」、 「h」、「m」、「s」、「t」、「y」、「z」、「H」或「M」,請指定「%d」、「%f」、「%F」、「%h」、「%m」、「%s」、「%t」、 「%y」、「%z」、「%H」或「%M」。有關使用單個格式說明符的更多信息,請參見使用單個自定義格式說明符。

\c
轉義符。當字符「c」前帶有轉義符 (\) 時,將該字符顯示爲文本。若要將反斜槓字符自己插入結果字符串,請使用兩個轉義符(「\\」)。 

任何其餘字符 
全部其餘字符被複制到結果字符串中,並且不影響格式化。


枚舉格式字符串

格式字符串 結果 
G 或 g
若有可能,將枚舉項顯示爲字符串值,不然顯示當前實例的整數值。若是枚舉定義中設置了 Flags 屬性,則串聯每一個有效項的字符串值並將各值用逗號分開。若是未設置 Flags 屬性,則將無效值顯示爲數字項。

F 或 f
若有可能,將枚舉項顯示爲字符串值。若是值能夠徹底顯示爲枚舉項的總和(即便未提供 Flags 屬性),則串聯每一個有效項的字符串值並將各值用逗號分開。若是值不能徹底由枚舉項肯定,則將值格式化爲整數值。

D 或 d
以儘量短的表示形式將枚舉項顯示爲整數值。

X 或 x
將枚舉項顯示爲十六進制值。按須要將值表示爲帶有前導零,以確保值的長度最少有八位

相關文章
相關標籤/搜索