[筆記] string.Format 格式整理

[筆記] string.Format輸出格式懶人包
紀錄以下幾種用法,並紀錄輸出格式
1. 標準數值格式
2. 自訂數值格式
3. 標準DateTime格式
4. 自訂DateTime格式
5. 字串格式

前言

常用到string.Format方法,每次用到都要上網查說明,心想不如整理成文章懶人包方便自己日後查詢,若有錯誤的地方,請各位不吝指教

 

標準數值格式

格式

說明

Format

Input

Output

補充

C 貨幣 {0:C} 1234.567 NT$1,234.57 Currency C預設到小數2位…C1取小數一位,C3取小數三位…
D 十進位 {0:D} 1234 1234 Decimal 只支援整數資料型別(integral types),D後面數字表示指定的位數
E 科學指數 {0:E} 1234 1.234000E+003 Scientific
F 固定 {0:F} 1234.4567 1234.46 Fixed-point
G 一般 {0:G} 1234.567 1234.57 General
N 數字 {0:N} 120000 120,000.00 Number每三位數用 "," 隔開
P 百分比 {0:P} 0.25 25.00% Percent輸入數值*100 ; 預設取小數2位,P0可取小數
R 來回 {0:R} 0.25 0.25 Round-trip只支援Double、Single
X 十六進位 {0:R} 123 7B Hexadecimal:只支援整數資料型別(integral types)


自訂數值格式

格式

說明

Format

Input

Output

補充

0 零值預留位置 {0:000.000} 12.3 012.300 Zero placeholder
# 數字預留位置 {0:###.###} 12.3 12.3 Digit placeholder
#,,:1234567890→1235
#,,,:1234567890→1
#,##0,,:1234567890→1,235
. 小數點 {0:0.0} 12.3 12.3 Decimal point
, 千位分隔符號 {0:0,0} 1200 1,200 Thousand separator and number scaling
% 百分比預留位置 {0:0%} 0.25 25%  Percentage placeholder
e 科學標記法 {0:0e+0} 123 1e+2 Scientific notation
\ 跳脫字元 {0:00\n0} 123 12 3  Escape character

備註:自訂數值格式化:{0:(###) ### – ####} ,1234567890→(123) 456 – 7890,詳細請參考 自訂數值格式輸出範例


標準DateTime格式

測試時間:2012/3/11 下午 01:02

格式

說明

Format

Output

補充

d 簡短日期 {0:d} 2012/3/11 MM/dd/yyyy
D 完整日期 {0:D} 2012年3月11日  
f 完整可排序日期/時間 {0:f} 2012年3月11日 下午 01:02  
F 完整可排序日期/時間 {0:F} 2012年3月11日 下午 01:02:03  
g 一般可排序日期/時間 {0:g} 2012/3/11 下午 01:02  
G 一般可排序日期/時間 {0:G} 2012/3/11 下午 01:02:03  
M、m 月日 {0:m} 3月11日  
o 來回日期/時間 {0:o} 2012-03-11T13:02:03.0000000  
R、r RFC1123 {0:R} Sun, 11 Mar 2012 13:02:03 GMT  
s 可排序日期/時間 {0:s} 2012-03-11T13:02:03  
t 簡短時間 {0:t} 下午 01:02 HH:mm
T 完整時間 {0:T} 下午 01:02:03 HH:mm:ss
u 通用可排序日期/時間 {0:u} 2012-03-11 13:02:03Z yyyy'-'MM'-'dd HH':'mm':'ss'Z'
U 通用可排序日期/時間 {0:U} 2012年3月11日 上午 05:02:03  
Y、y 年月 {0:y} 2012年3月  

備註:輸出日期格式顯示可以依據〈控制台〉 〈地區語言選項〉做修改,詳細請參考:標準DateTime格式輸出範例String.Format yyyy/MM/dd? 誤會大了 by 黑暗大

 

自訂DateTime格式

測試時間:2012/3/11 下午 02:21

格式

說明

Format

Output

補充

dd 月份日期 {0:dd} 11  
ddd 星期幾的縮寫 {0:ddd} 星期日 Sun
dddd 星期幾的完整名稱 {0:dddd} 星期日 Sunday
f, ff… 秒數 {0:fff} 364  
gg,… 時期或時代 {0:gg} 西元  
hh 小時(12 小時制) {0:hh} 02  
HH 小時(24 小時制) {0:HH} 14  
mm 分鐘 {0:mm} 21  
MM 月份 {0:MM} 03  
MMM 月份的縮寫名稱 {0:MMM} 三月 Mar
MMMM 月份的完整名稱 {0:MMMM} 三月 March
ss 秒數 {0:ss} 49  
tt A.M./P.M {0:tt} 下午  
yy 兩個位數的數字來表示年份 {0:yy} 12  
yyy 三個位數的數字來表示年份 {0:yyy} 2012  
yyyy 四個位數的數字來表示年份 {0:yyyy} 2012  
zz 時差(小時) {0:zz} +08 系統時區與格林威治標準時間 (GMT) 時差
zzz 時差(小時&分鐘) {0:zzz} +08:00 系統時區與格林威治標準時間 (GMT) 時差 (帶正負號)
: 時間分隔符號 {0:hh:mm:ss} 02:29:06  
/ 日期分隔符號 {0:yyyy/MM/dd} 2012/03/11  

詳細請參考 自訂DateTime格式字串

 

字串格式


string myBook = "book";
string myPencil = "pencil";
string FormatString = String.Format("This is a {0}, not a {1}", myBook, myPencil);
Response.Write(FormatString); 

Result:This is a book, not a pencil

 

參考

此篇文章是上網查詢自己整理的結果,如果內容有錯誤的地方,麻煩各位高手給予小弟指導

自訂數值格式輸出範例

格式化型別

標準DateTime格式輸出範例

String.Format yyyy/MM/dd? 誤會大了 by 黑暗大

String.Format格式说明