只有累積,沒有奇蹟

2018年10月11日 星期四

[C#] string.Format 格式整理

[筆記] string.Format輸出格式懶人包
紀錄以下幾種用法,並紀錄輸出格式
1. 標準數值格式
2. 自訂數值格式
3. 標準DateTime格式
4. 自訂DateTime格式
5. 字串格式
前言
常用到string.Format方法,每次用到都要上網查說明,心想不如整理成文章懶人包方便自己日後查詢,若有錯誤的地方,請各位不吝指教

標準數值格式
格式
說明
Format
Input
Output
補充
C貨幣{0:C}1234.567NT$1,234.57Currency C預設到小數2位…C1取小數一位,C3取小數三位…
D十進位{0:D}12341234Decimal 只支援整數資料型別(integral types),D後面數字表示指定的位數
E科學指數{0:E}12341.234000E+003Scientific
F固定{0:F}1234.45671234.46Fixed-point
G一般{0:G}1234.5671234.57General
N數字{0:N}120000120,000.00Number每三位數用 "," 隔開
P百分比{0:P}0.2525.00%Percent輸入數值*100 ; 預設取小數2位,P0可取小數
R來回{0:R}0.250.25Round-trip只支援Double、Single
X十六進位{0:R}1237BHexadecimal:只支援整數資料型別(integral types)


自訂數值格式
格式
說明
Format
Input
Output
補充
0零值預留位置{0:000.000}12.3012.300Zero placeholder
#數字預留位置{0:###.###}12.312.3Digit placeholder 
#,,:1234567890→1235
#,,,:1234567890→1
#,##0,,:1234567890→1,235
.小數點{0:0.0}12.312.3Decimal point
,千位分隔符號{0:0,0}12001,200Thousand separator and number scaling
%百分比預留位置{0:0%}0.2525% Percentage placeholder
e科學標記法{0:0e+0}1231e+2Scientific notation
\跳脫字元{0:00\n0}12312 3 Escape character

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

標準DateTime格式
測試時間:2012/3/11 下午 01:02
格式
說明
Format
Output
補充
d簡短日期{0:d}2012/3/11MM/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、rRFC1123{0:R}Sun, 11 Mar 2012 13:02:03 GMT
s可排序日期/時間{0:s}2012-03-11T13:02:03
t簡短時間{0:t}下午 01:02HH:mm
T完整時間{0:T}下午 01:02:03HH:mm:ss
u通用可排序日期/時間{0:u}2012-03-11 13:02:03Zyyyy'-'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
ttA.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格式说明

1 則留言:

  1. "X 十六進位 {0:R} 123 7B Hexadecimal:只支援整數資料型別(integral types)"
    應該是
    "X 十六進位 {0:X} 123 7B Hexadecimal:只支援整數資料型別(integral types)"
    謝謝 您的分享

    回覆刪除

Copyright © m@rcus 學習筆記 | Powered by Blogger

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com