c#格式化數字程式碼範例詳解

來源:互聯網
上載者:User
int a = 12345678;//格式為sring輸出Label1.Text = string.Format("asdfadsf{0}adsfasdf",a);Label2.Text = "asdfadsf"+a.ToString()+"adsfasdf";Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",a);//asdfadsf¥1,234.00adsfasdfLabel2.Text = "asdfadsf"+a.ToString("C")+"adsfasdf";//asdfadsf¥1,234.00adsfasdfdouble b = 1234.12543;int a = 12345678;//格式為特殊的string樣式輸出Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",b);//asdfadsf¥1,234.13adsfasdfLabel2.Text = "asdfadsf"+b.ToString("C")+"adsfasdf";//asdfadsf¥1,234.13adsfasdfLabel1.Text = string.Format("{0:C3}",b);//¥1,234.125Label2.Text = b.ToString("C3");//¥1,234.125Label1.Text = string.Format("{0:d}",a);//十進位--12345678Label2.Text = b.ToString("d");//十進位--相同的類型,轉換報錯Label1.Text = string.Format("{0:e}",a);//指數--1.234568e+007Label2.Text = b.ToString("e");//指數--1.234125e+003Label1.Text = string.Format("{0:f}",a);//定點數--12345678.00Label2.Text = b.ToString("f");//定點數--1234.13Label1.Text = string.Format("{0:n}",a);//數值--12,345,678.00Label2.Text = b.ToString("n");//數值--1,234.13Label1.Text = string.Format("{0:x}",a);//十六進位--bc614eLabel2.Text = b.ToString("x");//16--帶有小數不能轉換,出錯Label1.Text = string.Format("{0:g}",a);//通用為最緊湊--12345678Label2.Text = b.ToString("g");//通用為最緊湊--1234.12543Label1.Text = string.Format("{0:r}",a);//轉來轉去不損失精度--整數不允許用,報錯Label2.Text = b.ToString("r");//轉來轉去不損失精度--1234.12543double b = 4321.12543;int a = 1234;

自訂模式輸出:

//"0"描述:預留位置,如果可能,填充位Label1.Text = string.Format("{0:000000}",a);// 001234Label2.Text = string.Format("{0:000000}",b);// 004321//"#"描述:預留位置,如果可能,填充位Label1.Text = string.Format("{0:#######}",a);// 1234Label2.Text = string.Format("{0:#######}",b);// 4321Label1.Text = string.Format("{0:#0####}",a);// 01234Label2.Text = string.Format("{0:0#0000}",b);// 004321//"."描述:小數點Label1.Text = string.Format("{0:000.000}",a);//1234.000Label2.Text = string.Format("{0:000.000}",b);//4321.125double b = 87654321.12543;int a = 12345678;//","描述:數字分組,也用於增倍器Label1.Text = string.Format("{0:0,00}",a);// 12,345,678Label2.Text = string.Format("{0:0,00}",b);// 87,654,32Label1.Text = string.Format("{0:0,}",a);// 12346Label2.Text = string.Format("{0:0,}",b);// 87654Label1.Text = string.Format("{0:0,,}",a);// 12Label2.Text = string.Format("{0:0,,}",b);// 88Label1.Text = string.Format("{0:0,,,}",a);// 0Label2.Text = string.Format("{0:0,,,}",b);// 0//"%"描述:格式為百分數Label1.Text = string.Format("{0:0%}",a);// 1234567800%Label2.Text = string.Format("{0:#%}",b);// 8765432113%Label1.Text = string.Format("{0:0.00%}",a);// 1234567800.00%Label2.Text = string.Format("{0:#.00%}",b);// 8765432112.54%//"abc"描述:顯示單引號內的文本Label1.Text = string.Format("{0:'文本'0}",a);// 文本12345678Label2.Text = string.Format("{0:文本0}",b);// 文本87654321//"""描述:後跟1要列印字的字元,也用於轉移符"n等Label1.Text = string.Format("""你好!""");// "你好!"Label2.Text = string.Format("[url=file://""c""books""new""we.asp]""c""books""new""we.asp");//"c"books"new"we.asp//"@"描述:後跟要列印字的字元,Label1.Text = string.Format(@"""你好!"""); // "你好!"要列印"則需要輸入兩對才可以Label2.Text = string.Format(@""c"books"new"we.asp");//"c"books"new"we.asp


Label1.Text = String.Format("{0:yyyy年-mm月-dd日",DateTime.Now);

日期轉化一

為了達到不同的顯示效果有時,我們需要對時間進行轉化,預設格式為:2007-01-03 14:33:34 ,要轉化為其他格式,要用到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, 2005


參數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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.