只有累積,沒有奇蹟

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格式字串

字串格式
  1. string myBook = "book";
  2. string myPencil = "pencil";
  3. string FormatString = String.Format("This is a {0}, not a {1}", myBook, myPencil);
  4. Response.Write(FormatString);
Result:This is a book, not a pencil

參考
此篇文章是上網查詢自己整理的結果,如果內容有錯誤的地方,麻煩各位高手給予小弟指導
標準DateTime格式輸出範例

String.Format格式说明

Related Posts:

  • [.NET] Default 和 NativeImage 資料夾問題 收到同事反應公司 Server C:\ 硬碟空間嚴重不足,確認後發現 C:\errors 資料空間占了 25g 而且還以驚人的速度成長中,進到資料夾底下查看分 Default 與 NativeImage folder 存放各種應用程式 Log ,如下圖所示 其中竟然還有 w3wp.exe,到底這些是如何記錄的呢 ? 本篇文章簡單記錄解決問題的過程 解決方案 為了追根究柢,點開其中 w3wp.exe 資料… Read More
  • [VisualStudio] 解決 Visual Studio 偵錯時啟動緩慢問題問題  接獲朋友詢問在使用 Visual Studio 進行 debug 偵錯時緩慢,原本從按下 F5 很快就可進行偵錯現在都要 30 秒以上才可完成,過去經驗得知造成 debug 啟動緩慢時會有幾種原因,Symbol 設定為 Microsoft Server 加載、debug breakpoints、或是 sln 專案檔設定異常都有可能造成此問題,如果在找不出問題就可能要使用 FusionLog 來釐清緩慢原因,這篇就就針對… Read More
  • [UnitTest] 如何測試目標方法中含有 static method 代碼 ? 情境 由於部門過去的 專案幾乎都沒有加上單元測試進行保護,主管在新的一年規劃中開發代碼更有品質,希望開發的專案加上新功能或是修改時要加上單元測試,有些 Legacy Code 寫法是屬於一條龍式的 「義大利麵式碼」特別有親切感(大誤,遇到這種就需要先重構 (refactor) 後物件化比較好寫單元測試,今天主題是單元測試中要被測試的 method 中常常會有相依於某個 Static method,在寫 Code 時用… Read More
  • [C#] Named Arguments 具名引數前言  同事在開發專案時詢問某 method 有多個參數,有些參數是選擇輸入有預設值,因參數太多是否有方法可以指定參數名字 ? 否則一堆有設定預設值的在閱讀代碼會造成困擾,不小心也可能傳入錯誤變數,聽到當下建議抽成一個 Model 這樣更容易維護,但他表示由於引用的方法過多會擔心會牽一髮動全身,會有不可預期和毀滅性的災害發生,因此可以使用 具名引數 named arguments 來指定需要傳入的… Read More
  • [Azure] Microsoft Azure 初體驗前言 Microsoft Azure 是微軟從 2010 年開始提供的雲端服務,提供多樣化的服務可以讓開發人員將應用程式或是資料庫佈署至雲端,自己過去在 2012 年曾經使用 Microsoft Azure WebSite 服務,當時將公司開發的 ERP 產品佈署在 Windows Azure 上面 (早期叫做 Windows Azure 後來改名為 Microsoft Azure ),… Read More

1 則留言:

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

    回覆刪除

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

Design by Anders Noren | Blogger Theme by NewBloggerThemes.com