ToString說明
ToString 是 .NET Framework 中主要的格式化方法。它將對象轉換為其字符串表現形式,使它適合於顯示。(有關對 .NET Framework 中的格式設置支持的更多信息,請參見 格式化類型。)
ToString 方法的默認實現返回 Object的類型的完全限定名,如以下示例所示。
類型通常覆蓋 ToString 方法以返回表示對象實例的字符串。例如,基礎數據類型(如 Char, Int32和 String)提供 ToString 實現該返回對象表示的值的字符串形式。下面的示例定義一個為 Object2 的類,該類重寫 ToString 方法以返回類型名稱以及其值。
對實現者的說明
當實現您自己的類型時,應重寫 ToString 方法,以返回對這些類型有意義的值。需要比 ToString 提供的對格式設置的控制更多控制的派生類應實現 IFormattable 接口。其 IFormattable.ToString(String, IFormatProvider) 方法使您能夠定義控制格式設置的格式字符串,並使用可以為區域性特定的格式設置提供的 IFormatProvider對象。
DateTime類型
DateTime.ToString()函數有四個重載。一般用得多的就是不帶參數的那個了。殊不知,DateTime.ToString(string format)功能更強大,能輸出不同格式的日期。以下把一些情況羅列出來,供大家參考。有些在MSDN上有的就沒有列出來了。
1. y代表年份,注意是小寫的y,大寫的Y並不代表年份。
2. M表示月份。
3. d表示日期,注意D並不代表什么。
4. h或H表示小時,h用的是12小時制,H用的是24小時制。
5. m表示分鍾。
6. s表示秒。注意S並不代表什么。
格式 | 輸出 | 示例 |
組合使用格式 | ||
年 | ||
y | 9 | string year = DateTime.Now.ToString("y-MM") year = "9-05" |
yy | 09 | string year = DateTime.Now.ToString("yy-MM") year = "09-05" |
yyy或更多的y | 2009 | string year = DateTime.Now.ToString("yyyy"); year="2009" |
月 | ||
M | 5 | string mon = DateTime.Parse("1984-05-09").ToString("yyyy-M") mon = "1984-5" |
MM | 05 | string mon = DateTime.Parse("1984-05-09").ToString("MM") mon = "05" |
MMM | 如果是中文版的操作系統,則會輸出:五月. 如果是英文操作系統,則輸入月份前三個字母的簡寫:May |
string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系統:Jul 中文版操作系統:七月 |
MMMM或更多的M | 如果是中文版的操作系統,則會輸出:五月 如果是英文操作系統,則輸入月份的全寫 |
string mon = DateTime.Parse("2006-07-01").ToString("MMM") 英文版操作系統:July 中文版操作系統:七月 |
日期或星期 | ||
d | 9 | string dd= DateTime.Parse("1984-05-09").ToString("d") dd = "9" |
dd | 09 | string dd= DateTime.Parse("1984-05-09").ToString("dd") dd = "09" |
ddd | 如果是中文版的操作系統,則會輸出星期,如星期三 如果是英文操作系統,則輸出星期的簡寫:如Wed |
string dd = DateTime.Parse("2006-07-01").ToString("ddd") 英文版操作系統:Wed 中文版操作系統:星期三 |
dddd或更多的d | 如果是中文版的操作系統,則會輸出星期,如星期三 如果是英文操作系統,則輸出星期:如Wednesday |
string dd = DateTime.Parse("2006-07-01").ToString("ddd") 英文版操作系統:Wednesday 中文版操作系統:星期三 |
小時 | ||
h | 小時范圍:1-12 | string hour = DateTime.Now.ToString(“h”); hour = "8" |
hh或更多的h | 小時范圍:1-12 | string hour = DateTime.Now.ToString(“h”); hour = "08" |
H | 小時范圍:0-23 | string hour = DateTime.Now.ToString(“yyyy-H”); hour = "2006-8 " |
HH或更多的H | 小時范圍:0-23 | string hour = DateTime.Now.ToString(“yyyy-HH”); hour = "2006-08" string hour = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”); hour = "2006-18" |
分鍾 | ||
m | 6 | string minute = DateTime.Now.ToString("yyyy-MM-dd-m"); minute = "2006-07-01-6"; |
mm或更多的m | 06 | string minute = DateTime.Now.ToString("yyyy-MM-dd-mm"); minute = "2006-07-01-06"; |
秒 | ||
s | 6 | string second = DateTime.Now.ToString("yyyy-MM-dd-s"); second = "2006-07-01-6"; |
ss或更多的s | 06 | string second = DateTime.Now.ToString("yyyy-MM-dd-ss"); second = "2006-07-01-06"; |
秒后精度 | ||
f | 秒的小數精度為一位,其余數字被截斷 | |
ff | 秒的小數精度為兩位,其余數字被截斷 | |
fff | 秒的小數精度為三位,其余數字被截斷 | |
ffff | 秒的小數精度為四位,其余數字被截斷 | |
fffff | 秒的小數精度為五位,其余數字被截斷 | |
ffffff | 秒的小數精度為六位,其余數字被截斷 | |
fffffff | 秒的小數精度為七位,其余數字被截斷 | |
時區 | ||
z | 時區偏移量("+"或"-"后面僅跟小時。一位數的小時沒有前導0)。例如太平洋標准時間是"-8" | |
zz | 時區偏移量("+"或"-"后面僅跟小時。一位數的小時有前導0)。例如太平洋標准時間是"-8" | |
zzz | 完整時區偏移量("+"或"-"后面跟有小時和分鍾)。例如太平洋標准時間是"-08:00" | |
上下午 | ||
t | 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字符(如果存在)。 | |
tt | 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(如果存在) |
|
其它 | ||
: | TimeSeparator中定義的默認時間分隔符 | |
/ | 在DateSparator中定義的默認日期分隔符 | |
%c | 其它c是格式模式(如果單獨使用)。如果格式模式與字符或其他格式模式合並,則可以省略"%"字符 | |
"c | 其中c是任意字符。照原義顯示字符。 | |
以下格式只能單獨使用,表示特定的格式 | ||
d | ShortDatePattern | |
D | LongDatePattern | |
f | 完整日期和時間(長日期和短時間) | |
F | FullDateTimePattern(長日期和長時間) | |
g | 常規(短日期和短時間) | |
G | 常規(短日期和長時間) | |
m、M | MonthDayPattern | |
r、R | RFC1123Pattern | |
s | 使用當地時間的 SortableDateTimePattern(基於 ISO 8601) | |
t | ShortTimePattern | |
T | LongTimePattern | |
u | UniversalSortableDateTimePattern 用於顯示通用時間的格式 | |
U | 使用通用時間的完整日期和時間(長日期和長時間) | |
y、Y | YearMonthPattern |
int類型
Int.ToString(format):
格式字符串采用以下形式:Axx,其中 A 為格式說明符,指定格式化類型,xx 為精度說明符,控制格式化輸出的有效位數或小數位數,具體如下:
格式說明符
符號 | 說明 | 示例 | 輸出 |
C | 貨幣 | 2.5.ToString("C") | ¥2.50 |
D | 十進制數 | 25.ToString("D5") | 00025 |
E | 科學型 | 25000.ToString("E") | 2.500000E+005 |
F | 固定點 | 25.ToString("F2") | 25.00 |
G | 常規 | 2.5.ToString("G") | 2.5 |
N | 數字 | 2500000.ToString("N") | 2,500,000.00 |
p | 百分比 | 0.25.ToString("P") | 25% |
r | 1.42.ToString("R") | 1.42 | |
X | 十六進制 | 255.ToString("X") | FF |
自定義數字格式字符串
格式符 說明
0 小數左取整 小數右占位
# 非0時數字占位
. 小數點
, 千分隔符
% 乘以100后加%表示
\ 轉義序列
'' 字符串
"" 字符串
; 分割正數負數和零
格式字符串 數據類型 值 輸出
##### Double 123 123
00000 Double 123 00123
(###) ### - #### Double 1234567890 (123) 456 – 7890
#.## Double 1.2 1.2
0.00 Double 1.2 1.20
00.00 Double 1.2 01.20
#,# Double 1234567890 1,234,567,890
#,, Double 1234567890 1235
#,,, Double 1234567890 1
#,##0,, Double 1234567890 1,235
#0.##% Double 0.086 8.6%
0.###E+0 Double 86000 8.6E+4
0.###E+000 Double 86000 8.6E+004
0.###E-000 Double 86000 8.6E004
[##-##-##] Double 123456 [12-34-56]
##;(##) Double 1234 1234
##;(##) Double -1234 (1234)
轉載自:http://www.cnblogs.com/mmeroad/archive/2012/03/30/2425133.html