當使用字符串時最常見的一項任務是格式化字符串。當向用戶顯示信息時,你經常顯示如日期,時間,數字值,十進制值,貨幣值,甚至象十六進制數字這樣的內容。C#字符串都能夠顯示這些類型的信息,甚至更多。另外一個強有力的特征是,當你使用該標准格式化工具時,該格式化的輸出具有地區感知特征。例如,如果你以短格式顯示一個英格蘭用戶的當前日期,那麼對於一個美國用戶來說,當前日期的短格式將以不同形式顯示。
為了創建一個格式化的字符串,你僅需要調用string類的Format方法,並且傳遞給它一個格式字符串,如下列代碼所顯示的:
string formatted = string.Format("The value is {0}", value);
在此,{0}占位符指示一個值應該被插入的位置。除了指定一個值應該被插入的位置外,你還可以指定該值的格式。
其它數據類型還支持經由定制格式修飾符轉換成字符串,例如,DateTime數據類型,通過使用如下方式,它能夠產生一種定制格式的輸出:
DateTime.ToString("format specifIErs");
表格1列舉了用於格式化日期,時間,數字值等數據的一些最常用的格式字符串。
表格1.定制DateTime格式修飾符
修飾符 描述 d 顯示某月中的這一天。 dd 顯示某月中的這一天,其中,小於10的值之前加上一個0。 ddd 顯示一個星期中某一天的三字母縮寫名。 dddd(+) 顯示給定的DateTime值中星期中的一天的完整名。 f(+) 顯示秒值的最重要的x位數。在f中格式修飾符位數越多,該數字越重要。這是個總秒數,而不是從上個分鐘以來經過的秒數。 F(+) 與f(+)相同,除了不顯示末尾的零外。 g 顯示一個給定的DateTime中的時代,例如,"A.D"。 h 顯示小時,范圍為:1~12。 hh 顯示小時,范圍為:1~12,其中,小於10的值之前加上一個0。 H 顯示小時范圍為:0~23。 HH 顯示小時范圍為:0~23,其中,小於10的值之前加上一個0。 m 顯示分鐘,范圍為0~59。 mm 顯示分鐘,范圍為0~59,其中,小於10的值之前加上一個0。 M 顯示月份,范圍為1~12。 MM 顯示月份,范圍為1~12,其中,小於10的值之前加上一個0。 MMM 顯示月份的三字符縮略名。 MMMM 顯示月份的完整名字。 s 顯示秒數范圍為:0~59。 ss(+) 顯示秒數范圍為:0~59,其中,小於10的值之前加上一個0。 t 顯示給定的時間中AM/PM指示器中的第一個字符。 tt(+) 顯示給定的時間中完整的AM/PM指示器。 y/yy/yyyy 顯示給定的時間中的年份。 z/zz/zzz(+) 顯示給定的時間中的時區偏移量。