C# Tostring() 格式大全 [轉]

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

 
 
X

 
 十六進制

 
 255.ToString("X")

 
 FF

 
 

formatCode 是可選的格式化代碼字符串。(詳細內容請搜索“格式化字符串”查看)

必須用“{”和“}”將格式與其他字符分開。如果恰好在格式中也要使用大括號,可以用連續的兩個大括號表示一個大括號,即: “{{”或者“}}”。

常用格式舉例:

(1) int i=12345;

this.textBox1.Text=i.ToString();

//結果 12345(this指當前對象,或叫當前類的實例)

this.textBox2.Text=i.ToString("d8");

//結果 00012345

(2) int i=123;

double j=123.45;

string s1=string.Format("the value is {0,7:d}",i);

string s2=string.Format("the value is {0,7:f3}",j);

this.textBox1.Text=s1 ;

//結果 the value is 123

this.textBox2.Text=s2;

//結果 the value is 123.450

(3)double i=12345.6789;

this.textBox1.Text=i.ToString("f2"); //結果 12345.68

this.textBox2.Text=i.ToString("f6");

//結果 12345.678900

(4)double i=12345.6789;

this.textBox1.Text=i.ToString("n"); //結果 12,345.68

this.textBox2.Text=i.ToString(“n4”); //結果 12,345.6789

(5)double i=0.126;

string s=string.Format("the value is {0:p}",i);

this.textBox1.Text=i.ToString("p"); //結果 12.6%

this.textBox2.Text=s; //結果 the value is 12.6%

(6) DateTime dt =new DateTime(2003,5,25);

this.textBox1.Text=dt.ToString("yy.M.d");

//結果 03.5.25

this.textBox2.Text=dt.ToString(“yyyy年M月”);

//結果 2003年5月

Convert.ToDateTime("2005/12/22 22:22:22").ToString("yyyy/MM/dd HH:mm:ss") "2005/12/22 22:22:22"

(7) int i=123;

double j=123.45;

string s=string.Format("i:{0,-7},j:{1,7}",i,j);

//-7表示左對齊,佔7位

this.textBox1.Text=s ;

//結果i:123 ,j: 123.45

 DateTime.ToString()用法詳解

我們經常會遇到對時間進行轉換,達到不同的顯示效果,默認格式爲:2006-6-6 14:33:34 如果要換成成200606,06-2006,2006-6-6或更多的格式該怎麼辦呢?這裏將要用到:DateTime.ToString的方法(String, IFormatProvider) 示例: using System; using System.Globalization; String format="D"; DateTime date=DataTime.Now; Response.Write(date.ToString(format, DateTimeFormatInfo.InvariantInfo)); 結果輸出 Thursday, June 16, 2006 在這裏列出了參數format格式詳細用法 ======================= 格式字符 關聯屬性/說明 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

下表列出了可被合併以構造自定義模式的模式 ======================================== 這些模式是區分大小寫的;例如,識別“MM”,但不識別“mm”。如果自定義模式包含空白字符或用單引號括起來的字符,則輸出字符串頁也將包含這些字符。未定義爲格式模式的一部分或未定義爲格式字符的字符按其原義複製。

格式模式 說明 : d 月中的某一天。一位數的日期沒有前導零。 dd 月中的某一天。一位數的日期有一個前導零。 ddd 週中某天的縮寫名稱,在 AbbreviatedDayNames 中定義。 dddd 週中某天的完整名稱,在 DayNames 中定義。 M 月份數字。一位數的月份沒有前導零。 MM 月份數字。一位數的月份有一個前導零。 MMM 月份的縮寫名稱,在 AbbreviatedMonthNames 中定義。 MMMM 月份的完整名稱,在 MonthNames 中定義。 y 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示不具有前導零的年份。 yy 不包含紀元的年份。如果不包含紀元的年份小於 10,則顯示具有前導零的年份。 yyyy 包括紀元的四位數的年份。 gg 時期或紀元。如果要設置格式的日期不具有關聯的時期或紀元字符串,則忽略該模式。 h 12 小時制的小時。一位數的小時數沒有前導零。 hh 12 小時制的小時。一位數的小時數有前導零。 H 24 小時制的小時。一位數的小時數沒有前導零。 HH 24 小時制的小時。一位數的小時數有前導零。 m 分鐘。一位數的分鐘數沒有前導零。 mm 分鐘。一位數的分鐘數有一個前導零。 s 秒。一位數的秒數沒有前導零。 ss 秒。一位數的秒數有一個前導零。 f 秒的小數精度爲一位。其餘數字被截斷。 ff 秒的小數精度爲兩位。其餘數字被截斷。 fff 秒的小數精度爲三位。其餘數字被截斷。 ffff 秒的小數精度爲四位。其餘數字被截斷。 fffff 秒的小數精度爲五位。其餘數字被截斷。 ffffff 秒的小數精度爲六位。其餘數字被截斷。 fffffff 秒的小數精度爲七位。其餘數字被截斷。 t 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項的第一個字符(如果存在)。 tt 在 AMDesignator 或 PMDesignator 中定義的 AM/PM 指示項(如果存在)。 z 時區偏移量(“+”或“-”後面僅跟小時)。一位數的小時數沒有前導零。例如,太平洋標準時間是“-8”。 zz 時區偏移量(“+”或“-”後面僅跟小時)。一位數的小時數有前導零。例如,太平洋標準時間是“-08”。 zzz 完整時區偏移量(“+”或“-”後面跟有小時和分鐘)。一位數的小時數和分鐘數有前導零。例如,太平洋標準時間是“-08:00”。 : 在 TimeSeparator 中定義的默認時間分隔符。 / 在 DateSeparator 中定義的默認日期分隔符。 % c 其中 c 是格式模式(如果單獨使用)。如果格式模式與原義字符或其他格式模式合併,則可以省略“%”字符。 / c 其中 c 是任意字符。照原義顯示字符。若要顯示反斜槓字符,請使用“//”。

只有上面第二個表中列出的格式模式才能用於創建自定義模式;在第一個表中列出的標準格式字符不能用於創建自定義模式。自定義模式的長度至少爲兩個字符;例如,

DateTime.ToString( "d") 返回 DateTime 值;“d”是標準短日期模式。 DateTime.ToString( "%d") 返回月中的某天;“%d”是自定義模式。 DateTime.ToString( "d ") 返回後面跟有一個空白字符的月中的某天;“d”是自定義模式。

比較方便的是,上面的參數可以隨意組合,並且不會出錯,多試試,肯定會找到你要的時間格式如要得到2005年06月 這樣格式的時間可以這樣寫: date.ToString("yyyy年MM月", DateTimeFormatInfo.InvariantInfo) 如此類推. 下面列出一些Asp.net中具體的日期格式化用法: ============================================ 1.綁定時格式化日期方法:

2.數據控件如DataGrid/DataList等的件格式化日期方法: e.Item.Cell[0].Text = Convert.ToDateTime(e.Item.Cell[0].Text).ToShortDateString();

3.用String類轉換日期顯示格式: String.Format( "yyyy-MM-dd ",yourDateTime);

4.用Convert方法轉換日期顯示格式: Convert.ToDateTime("2005-8-23").ToString

("yyMMdd",System.Globalization.DateTimeFormatInfo.InvariantInfo); //支持繁體數據庫

5.直接用ToString方法轉換日期顯示格式: DateTime.Now.ToString("yyyyMMddhhmmss"); DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")

6.只顯示年月 DataBinder.Eval(Container.DataItem,"starttime","{0:yyyy-M}")

7.顯示時間所有部分,包括:年月日時分秒 DataFormatString='{0:yyyy-MM-dd HH24:mm:ss}'>


用DateTime.ToString(string format)輸出不同格式的日期
 
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
 7
 string yy = DateTime.Now.ToString("y-MM")

yy="7-05"
 
yy
 07
 string yy = DateTime.Now.ToString("yy-MM")

yy="07-05"
 
yyy或更多的y
 1984
 string yy = DateTime.Now.ToString("yyyy");

yy="2007"
 

 
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("dddd")

英文版操作系統:Wednesday

中文版操作系統:星期三
 
小時
 
h
 小時範圍:1-12
 string hh = DateTime.Now.ToString(“h”);

hh = 8
 
hh或更多的h
 小時範圍:1-12
 string hh = DateTime.Now.ToString(“hh”);

hh = 08
 
H
 小時範圍:0-23
 string hh = DateTime.Now.ToString(“yyyy-H”);

hh = 2006-8
 
HH或更多的H
 小時範圍:0-23
 string hh = DateTime.Now.ToString(“yyyy-HH”);

hh = 2006-08

string hh = DateTime.Pare(“2006-7-4 18:00:00”).ToString(“yyyy-HH”);

hh = 2006-18
 
分鐘
 
m
 6
 string mm = DateTime.Now.ToString("yyyy-MM-dd-m");

mm = “2006-07-01-6”;
 
mm或更多的m
 06
 string mm = DateTime.Now.ToString("yyyy-MM-dd-mm");

mm = “2006-07-01-06”;
 

 
s
 6
 string mm = DateTime.Now.ToString("yyyy-MM-dd-s");

mm = “2006-07-01-6”;
 
ss或更多的s
 06
 string mm = DateTime.Now.ToString("yyyy-MM-dd-ss");

mm = “2006-07-01-06”;
 
 


stringstr1 =string.Format("{0:N1}",56789);               //result: 56,789.0 stringstr2 =string.Format("{0:N2}",56789);               //result: 56,789.00 stringstr3 =string.Format("{0:N3}",56789);               //result: 56,789.000 stringstr8 =string.Format("{0:F1}",56789);               //result: 56789.0 stringstr9 =string.Format("{0:F2}",56789);               //result: 56789.00 stringstr11 =(56789 / 100.0).ToString("#.##");           //result: 567.89 stringstr12 =(56789 / 100).ToString("#.##");             //result: 567

C 或 c 貨幣 Console.Write("{0:C}", 2.5); / 2.50 Console.Write("{0:C}", -2.5); //($2.50)

D 或 d 十進制數 Console.Write("{0:D5}", 25); //00025 E 或 e 科學型 Console.Write("{0:E}", 250000); //2.500000E+005 F 或 f 固定點 Console.Write("{0:F2}", 25); //25.00 Console.Write("{0:F0}", 25); //25 G 或 g 常規 Console.Write("{0:G}", 2.5); //2.5 N 或 n 數字 Console.Write("{0:N}", 2500000); //2,500,000.00 X 或 x 十六進制 Console.Write("{0:X}", 250); //FA Console.Write("{0:X}", 0xffff); //FFFF

/////////////////////////////////////////////////////////////////////////////////
C#格式化數值結果表
字符
 說明
 示例
 輸出
 
C 貨幣 string.Format("{0:C3}", 2) $2.000
D 十進制 string.Format("{0:D3}", 2) 002
E 科學計數法 1.20E+001 1.20E+001
G 常規 string.Format("{0:G}", 2) 2
N 用分號隔開的數字 string.Format("{0:N}", 250000) 250,000.00
X 十六進制 string.Format("{0:X000}", 12) C
  string.Format("{0:000.000}", 12.2) 012.200

Strings
There really isn't any formatting within a strong, beyond it's alignment. Alignment works for any argument being printed in a String.Format call.

Sample Generates
String.Format("->{1,10}<-", "Hello"); -> Hello<-
String.Format("->{1,-10}<-", "Hello"); ->Hello <-


Numbers
Basic number formatting specifiers:

Specifier Type Format  Output (Passed Double 1.42)
 Output (Passed Int -12400)
 
c Currency {0:c} $1.42 -$12,400
d Decimal (Whole number) {0:d} System. FormatException -12400
e Scientific {0:e} 1.420000e+000 -1.240000e+004
f Fixed point {0:f} 1.42 -12400.00
g General {0:g} 1.42 -12400
n Number with commas for thousands {0:n} 1.42 -12,400
r Round trippable {0:r} 1.42 System. FormatException
x Hexadecimal {0:x4} System. FormatException cf90


Custom number formatting:

Specifier Type Example  Output (Passed Double 1500.42) Note
0 Zero placeholder {0:00.0000} 1500.4200 Pads with zeroes.
# Digit placeholder {0:(#).##} (1500).42  
. Decimal point {0:0.0} 1500.4  
, Thousand separator {0:0,0} 1,500 Must be between two zeroes.
,. Number scaling {0:0,.}  2 Comma adjacent to Period scales by 1000.
% Percent {0:0%} 150042% Multiplies by 100, adds % sign.
e Exponent placeholder {0:00e+0} 15e+2 Many exponent formats available.
; Group separator see below    


The group separator is especially useful for formatting currency values which require that negative values be enclosed in parentheses. This currency formatting example at the bottom of this document makes it obvious:

Dates
Note that date formatting is especially dependant on the system's regional settings; the example strings here are from my local locale.

Specifier Type Example (Passed System.DateTime.Now)
d Short date 10/12/2002
D Long date December 10, 2002
t Short time 10:11 PM
T Long time 10:11:29 PM
f Full date & time  December 10, 2002 10:11 PM
F Full date & time (long) December 10, 2002 10:11:29 PM
g Default date & time 10/12/2002 10:11 PM
G Default date & time (long) 10/12/2002 10:11:29 PM
M Month day pattern December 10
r RFC1123 date string Tue, 10 Dec 2002 22:11:29 GMT
s Sortable date string 2002-12-10T22:11:29
u Universal sortable, local time 2002-12-10 22:13:50Z
U Universal sortable, GMT December 11, 2002 3:13:50 AM
Y Year month pattern December, 2002


The 'U' specifier seems broken; that string certainly isn't sortable.

Custom date formatting:

Specifier Type Example  Example Output
dd Day {0:dd} 10
ddd Day name {0:ddd} Tue
dddd Full day name {0:dddd} Tuesday
f, ff, ... Second fractions {0:fff} 932
gg, ... Era {0:gg} A.D.
hh 2 digit hour {0:hh} 10
HH 2 digit hour, 24hr format {0:HH} 22
mm Minute 00-59 {0:mm} 38
MM Month 01-12 {0:MM} 12
MMM Month abbreviation {0:MMM} Dec
MMMM Full month name {0:MMMM} December
ss Seconds 00-59 {0:ss} 46
tt AM or PM {0:tt} PM
yy Year, 2 digits {0:yy} 02
yyyy Year {0:yyyy} 2002
zz Timezone offset, 2 digits {0:zz} -05
zzz Full timezone offset {0:zzz} -05:00
: Separator {0:hh:mm:ss} 10:43:20
/ Separator {0:dd/MM/yyyy} 10/12/2002


Enumerations
Specifier Type
g Default (Flag names if available, otherwise decimal)
f Flags always
d Integer always
x Eight digit hex.


Some Useful Examples
String.Format("{0:$#,##0.00;($#,##0.00);Zero}", value);

This will output "$1,240.00" if passed 1243.50. It will output the same format but in parentheses if the number is negative, and will output the string "Zero" if the number is zero.

String.Format("{0:(###) ###-####}", 18005551212);

This will output "(800) 555-1212".

變量.ToString()

字符型轉換 轉爲字符串 12345.ToString("n"); //生成 12,345.00 12345.ToString("C"); //生成 ¥12,345.00 12345.ToString("e"); //生成 1.234500e+004 12345.ToString("f4"); //生成 12345.0000 12345.ToString("x"); //生成 3039 (16進制) 12345.ToString("p"); //生成 1,234,500.00%

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章