只有累積,沒有奇蹟

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] ASP.NET 狀態管理(State Management):Session Session 狀態支援數種不同的資料儲存選項,簡單描述 Session 可用的狀態模式 InProc:存在Web伺服器的記憶體中;ASP.NET中預設的Session狀態設定,是最常用也是最方便的 Session 狀態模式,缺點是如果重新啟動伺服器,所有的Session資料將會遺失。 StateServer:儲存在 ASP.NET 狀態服務的處理序中;可以確保 Session 在 Web 應用程式重新啟動時保留下來,並且讓 Web 伺服陣… Read More
  • [C#] Anonymous Type 匿名型別說明 Anonymous Type 是甚麼? 匿名型別是C# 3.0開始有的特性,是一種暫存型的型別,不需要建立額外的類別來存放資料 根據MSDN對於 匿名型別 的說明如下 根據MSDN的說明,整理一下重點及特性 1. 透過 new 建立實體  // Anonymous Typevar employee = new { Id = 1, Name = "Marcus", Age = 22 } … Read More
  • [.NET] ASP.NET Application 概述 ASP.NET 處理請求的兩個步驟 當用戶發送一個請求到IIS(這裡指IIS 5.0 & IIS 6.0),ASP.NET 處理請求的步驟有兩種 1. 建立一個可以處理用戶端傳來請求Request的環境(ASP.NET Environment),包括建立application object(應用程式)、Ruquest、Response、Context Object等物件來處理此Ruquest請求。 2. 環境被建立後,應用程式會透過m… Read More
  • [VS2017] The current .NET SDK does not support targeting .NET Core 2.1發生情境 最近在開發時遇到取完最新的source code Build時發生錯誤,Visual Studio error message 如下 The current .NET SDK does not support targeting .NET Core 2.1.  Either target .NET Core 2.0 or lower, or use a version of the .NET SDK that su… Read More
  • [.NET] ASP.NET 特殊資料夾 [Special Folders] 在Visual Studio 2008 建立新的Web網站時,會同時新增一個特別的資料夾叫做「App_Data」,此資料夾是預留給資料庫使用,如Sql Server 2005 Express版,副檔名為「.mdf」的檔案。ASP.NET中有一些特殊的資料夾名稱,可以在專案點右鍵 > 加入 > 加入ASP.NET資料夾;將特殊資料夾加到專案中 ASP.NET Special Folders    … 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