asp.net/c#字符格式化_.Net教程
推薦:怎樣在ASP.NET中備份SQL Server數據庫前言:我們在開發網站時,在管理后臺,管理員通常要定期對數據庫進行備份(當然也可以讓sqlserver服務器定期自動備份,但我此處講的是asp.net中的備份),備份的代碼很簡單: 下面是我做一個網站后臺時在備份按扭下寫的一個事件: protected void Button1_Click(objec
一、用{0:?}格式化
可通過 String.Format 方法或通過 Console.Write 方法格式化數值結果,其中后一種方法調用 String.Format。使用格式字符串指定格式。下表包含受支持的標準格式字符串。格式字符串采用的形式為 Axx,其中 A 為“格式說明符”,而 xx 為“精度說明符”。格式說明符控制應用于數值的格式化類型,而精度說明符控制格式化輸出的有效位數或小數位數。
有關標準及自定義格式化字符串的更多信息,請參閱
字符 | 說明 | 示例 | 輸出 |
---|---|---|---|
C 或 c | 貨幣 | Console.Write("{0:C}", 2.5);
Console.Write("{0:C}", -2.5); |
$2.50
($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);
Console.Write("{0:F0}", 25); |
25.00
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);
Console.Write("{0:X}", 0xffff); |
FA
FFFF |
二、日期格式化
標準 DateTime 格式字符串
如果格式字符串只包含下表列出的某個單個格式說明符,則它們被解釋為標準格式說明符。如果指定的格式字符是單個字符并且不包含在下表中,則引發異常。如果格式字符串在長度上比單個字符長(即使多余的字符是空白),則格式字符串被解釋為自定義格式字符串。請注意,這些格式說明符產生的模式受“區域選項”控制面板中的設置的影響。具有不同區域性或不同日期與時間設置的計算機將顯示不同的模式。
格式字符串顯示的時間和日期分隔符由與當前區域性的
格式說明符 | 名稱 | 說明 |
---|---|---|
d | 短日期模式 | 顯示由與當前線程關聯的 |
D | 長日期模式 | 顯示由與當前線程關聯的 |
t | 短時間模式 | 顯示由與當前線程關聯的 |
T | 長時間模式 | 顯示由與當前線程關聯的 |
f | 完整日期/時間模式(短時間) | 顯示長日期和短時間模式的組合,由空格分隔。 |
F | 完整日期/時間模式(長時間) | 顯示由與當前線程關聯的 |
g | 常規日期/時間模式(短時間) | 顯示短日期和短時間模式的組合,由空格分隔。 |
G | 常規日期/時間模式(長時間) | 顯示短日期和長時間模式的組合,由空格分隔。 |
M 或 m | 月日模式 | 顯示由與當前線程關聯的 |
R 或 r | RFC1123 模式 | 顯示由與當前線程關聯的 |
s | 可排序的日期/時間模式;符合 ISO 8601 | 顯示由與當前線程關聯的 |
u | 通用的可排序日期/時間模式 | 顯示由與當前線程關聯的 |
U | 通用的可排序日期/時間模式 | 顯示由與當前線程關聯的 |
Y 或 y | 年月模式 | 顯示由與當前線程關聯的 |
任何其他單個字符 | 未知說明符 |
下表顯示了格式說明符示例的列表,這些示例應用于公開當前日期和時間信息的 DateTime.Now 的任意值。示例中給出了不同的區域性設置以闡釋更改當前區域性的影響。這通常以下面幾種方式更改:使用 Microsoft Windows 中的“日期/時間”控制面板,將您自己的 DateTimeFormatInfo 對象作為格式提供程序傳遞,或將 CultureInfo 對象設置傳遞給不同的區域性。請注意,對于“r”和“s”格式,更改區域性不影響輸出。此表是說明標準日期和時間說明符如何影響格式化的快速指南。請參閱該表下面闡釋這些說明符的代碼示例部分。
格式說明符 | 當前區域性 | 輸出 |
---|---|---|
d | en-US | 4/10/2001 |
d | en-NZ | 10/04/2001 |
d | de-DE | 10.04.2001 |
D | en-US | Tuesday, April 10, 2001 |
T | en-US | 3:51:24 PM |
T | es-ES | 15:51:24 |
f | en-US | Tuesday, April 10, 2001 3:51 PM |
f | fr-FR | mardi 10 avril 2001 15:51 |
r | en-US | Tue, 10 Apr 2001 15:51:24 GMT |
r | zh-SG | Tue, 10 Apr 2001 15:51:24 GMT |
s | en-US | 2001-04-10T15:51:24 |
s | pt-BR | 2001-04-10T15:51:24 |
u | en-US | 2001-04-10 15:51:24Z |
u | sv-FI | 2001-04-10 15:51:24Z |
m | en-US | April 10 |
m | ms-MY | 10 April |
y | en-US | April, 2001 |
y | af-ZA | April 2001 |
L | en-UZ | 無法識別的格式說明符;引發格式異常。 |
下面的代碼示例闡釋如何使用對 DateTime 對象使用自定義格式字符串。
[Visual Basic]Dim dt As DateTime = DateTime.NowDim dfi As DateTimeFormatInfo = New DateTimeFormatInfo()Dim ci As CultureInfo = New CultureInfo("de-DE")' Make up a new custom DateTime pattern, for demonstration.dfi.MonthDayPattern = "MM-MMMM, ddd-dddd"' Use the DateTimeFormat from the culture associated ' with the current thread.Console.WriteLine( dt.ToString("d") ) Console.WriteLine( dt.ToString("m") )' Use the DateTimeFormat from the specific culture passed.Console.WriteLine( dt.ToString("d", ci ) )' Use the settings from the DateTimeFormatInfo object passed.Console.WriteLine( dt.ToString("m", dfi ) )' Reset the current thread to a different culture.Thread.CurrentThread.CurrentCulture = New CultureInfo("fr-BE")Console.WriteLine( dt.ToString("d") )
[C#]DateTime dt = DateTime.Now;DateTimeFormatInfo dfi = new DateTimeFormatInfo();CultureInfo ci = new CultureInfo("de-DE");// Make up a new custom DateTime pattern, for demonstration.dfi.MonthDayPattern = "MM-MMMM, ddd-dddd";// Use the DateTimeFormat from the culture associated // with the current thread.Console.WriteLine( dt.ToString("d") ); Console.WriteLine( dt.ToString("m") );// Use the DateTimeFormat from the specific culture passed.Console.WriteLine( dt.ToString("d", ci ) );// Use the settings from the DateTimeFormatInfo object passed.Console.WriteLine( dt.ToString("m", dfi ) );// Reset the current thread to a different culture.Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-BE");Console.WriteLine( dt.ToString("d") );
自定義 DateTime 格式字符串
有時需要對 DateTime 對象的格式化有更多的控制。作為標準 DateTime 格式的替換方法,您可以使用自定義 DateTime 格式字符串構造您自己的 DateTime 格式化模式。實際上,標準格式就是從這些自定義格式說明符派生的。
下表顯示了自定義格式說明符并描述了它們產生的值。這些字符串的輸出受“區域選項”控制面板中的當前區域性和設置的影響。
格式說明符 | 說明 |
---|---|
d | 顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則它顯示為一位數字。
請注意,如果“d”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準短日期模式格式說明符。如果“d”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
dd | 顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。 |
ddd | 顯示指定 DateTime 對象的日部分縮寫名稱。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 AbbreviatedDayNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedDayNames 屬性。 |
dddd(外加任意數量的附加“d”字符) | 顯示指定 DateTime 對象的日部分全名。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 DayNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 DayNames 屬性。 |
f | 顯示以一位數字表示的秒。
請注意,如果“f”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為完整的(長日期 短時間)格式說明符。如果“f”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
ff | 顯示以二位數字表示的秒。 |
fff | 顯示以三位數字表示的秒。 |
ffff | 顯示以四位數字表示的秒。 |
fffff | 顯示以五位數字表示的秒。 |
ffffff | 顯示以六位數字表示的秒。 |
fffffff | 顯示以七位數字表示的秒。 |
g 或 gg(外加任意數量的附加“g”字符) | 顯示指定 DateTime 對象的年代部分(例如 A.D.)。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則年代由與 DateTimeFormat 對象關聯的日歷及其與當前線程關聯的當前區域性確定。
請注意,如果“g”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準常規格式說明符。如果“g”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
h | 以 1 到 12 這一范圍中的一個數字顯示指定 DateTime 對象的小時部分。該小時部分表示自午夜(顯示為 12)或中午(也顯示為 12)后所經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則它顯示為單個數字。顯示小時時不發生任何舍入。例如,DateTime 為 5:43 時返回 5。 |
hh, hh(外加任意數量的附加“h”字符) | 以 1 到 12 這一范圍中的一個數字顯示指定 DateTime 對象的小時部分。該小時部分表示自午夜(顯示為 12)或中午(也顯示為 12)后所經過的整小時數。如果單獨使用這種格式,則無法區別某一小時是中午以前還是中午以后的時間。如果該小時是單個數字 (1-9),則將其格式化為前面帶有 0 (01-09)。 |
H | 以 0 到 23 這一范圍中的一個數字顯示指定 DateTime 對象的小時部分。該小時部分表示自午夜(顯示為 0)后所經過的整小時數。如果該小時是單個數字 (0-9),則它顯示為單個數字。 |
HH, HH(外加任意數量的附加“H”字符) | 以 0 到 23 這一范圍中的一個數字顯示指定 DateTime 對象的小時部分。該小時部分表示自午夜(顯示為 0)后所經過的整小時數。如果該小時是單個數字 (0-9),則將其格式化為前面帶有 0 (01-09)。 |
m | 以 0 到 59 這一范圍中的一個數字顯示指定 DateTime 對象的分鐘部分。該分鐘部分表示自上個小時后所經過的整分鐘數。如果分鐘是一位數字 (0-9),則它顯示為一位數字。
請注意,如果“m”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的月日模式格式說明符。如果“m”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
mm, mm(外加任意數量的附加“m”字符) | 以 0 到 59 這一范圍中的一個數字顯示指定 DateTime 對象的分鐘部分。該分鐘部分表示自上個小時后所經過的整分鐘數。如果分鐘是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。 |
M | 顯示當前月份,以 1 到 12 之間的一個數字表示,包括 1 和 12。如果月份是一位數字 (1-9),則它顯示為一位數字。
請注意,如果“M”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的月天模式格式說明符。如果“M”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
MM | 顯示當前月份,以 1 到 12 之間的一個數字表示,包括 1 和 12。如果月份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。 |
MMM | 顯示指定 DateTime 對象的月部分縮寫名稱。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 AbbreviatedMonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedMonthNames 屬性。 |
MMMM | 顯示指定 DateTime 對象的月部分全名。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 MonthNames 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 MonthNames 屬性。 |
s | 以 0 到 59 這一范圍中的一個數字顯示指定 DateTime 對象的秒部分。該秒部分表示自上一分鐘后經過的整秒數。如果秒是一位數字 (0-9),則它僅顯示為一位數字。
請注意,如果“s”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的可排序日期/時間模式格式說明符。如果“s”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
ss, ss(外加任意數量的附加“s”字符) | 以 0 到 59 這一范圍中的一個數字顯示指定 DateTime 對象的秒部分。該秒部分表示自上一分鐘后經過的整秒數。如果秒是一位數字 (0-9),則將其格式化為帶有前導 0 (01-09)。 |
t | 顯示指定 DateTime 對象 A.M./P.M. 指示項的第一個字符。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 請注意,如果“t”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準的長時間模式格式說明符。如果“t”格式說明符與其他自定義格式說明符一起傳遞,則它被解釋為自定義格式說明符。 |
tt, tt(外加任意數量的附加“t”字符) | 顯示指定 DateTime 對象的 A.M./P.M. 指示項。如果未提供特定的有效格式提供程序(實現具有預期屬性的 IFormatProvider 的非空對象),則使用 DateTimeFormat 對象的 AMDesignator(或 PMDesignator)屬性及其與當前線程關聯的當前區域性。否則,使用來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對于指定的 DateTime 所經過的總整小時數小于 12,則使用 AMDesignator。否則,使用 PMDesignator。 |
y | 將指定 DateTime 對象的年份部分顯示為位數最多為兩位的數字。忽略年的前兩位數字。如果年份是一位數字 (1-9),則它顯示為一位數字。 |
yy | 將指定 DateTime 對象的年份部分顯示為位數最多為兩位的數字。忽略年的前兩位數字。如果年份是一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。 |
yyyy | 顯示指定 DateTime 對象的年份部分(包括世紀)。如果年份長度小于四位,則按需要在前面追加零以使顯示的年份長度達到四位。 |
z | 僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導或尾隨符號(零顯示為“ 0”),指示早于格林威治時間 ( ) 或遲于格林威治時間 (-) 的小時數。值的范圍是 –12 到 13。如果偏移量為一位數 (0-9),則將其顯示為帶合適前導符號的一位數。該時區的設置指定為 X 或 –X,其中 X 是相對 GMT 以小時為單位的偏移量。所顯示的偏移量受夏時制的影響。 |
zz | 僅以整小時數為單位顯示系統當前時區的時區偏移量。偏移量總顯示為帶有前導或尾隨符號(零顯示為“ 00”),指示早于格林威治時間 ( ) 或遲于格林威治時間 (-) 的小時數。值范圍為 –12 到 13。如果偏移量為單個數字 (0-9),則將其格式化為前面帶有 0 (01-09) 并帶有適當的前導符號。該時區的設置指定為 X 或 –X,其中 X 是相對 GMT 以小時為單位的偏移量。所顯示的偏移量受夏時制的影響。 |
zzz, zzz(外加任意數量的附加“z”字符) | 以小時和分鐘為單位顯示系統當前時區的時區偏移量。偏移量總是顯示為帶有前導或尾隨符號(零顯示為“ 00:00”),指示早于格林威治時間 ( ) 或遲于格林威治時間 (-) 的小時和分鐘數。值范圍為 –12 到 13。如果偏移量為單個數字 (0-9),則將其格式化為前面帶有 0 (01-09) 并帶有適當的前導符號。該時區的設置指定為 X 或 –X,其中 X 是相對 GMT 以小時為單位的偏移量。所顯示的偏移量受夏時制的影響。 |
: | 時間分隔符。 |
/ | 日期分隔符。 |
" | 帶引號的字符串。顯示轉義符 (/) 之后兩個引號之間的任何字符串的文本值。 |
' | 帶引號的字符串。顯示兩個“'”字符之間的任何字符串的文本值。 |
%c | 其中 c 是標準格式字符,顯示與格式字符關聯的標準格式模式。 |
\c | 其中 c 是任意字符,轉義符將下一個字符顯示為文本。在此上下文中,轉義符不能用于創建轉義序列(如“\n”表示換行)。 |
任何其他字符 | 其他字符作為文本直接寫入輸出字符串。 |
向 DateTime.ToString 傳遞自定義模式時,模式必須至少為兩個字符長。如果只傳遞“d”,則公共語言運行庫將其解釋為標準格式說明符,這是因為所有單個格式說明符都被解釋為標準格式說明符。如果傳遞單個“h”,則引發異常,原因是不存在標準的“h”格式說明符。若要只使用單個自定義格式進行格式化,請在說明符的前面或后面添加一個空格。例如,格式字符串“h”被解釋為自定義格式字符串。
下表顯示使用任意值 DateTime.Now(該值顯示當前時間)的示例。示例中給出了不同的區域性和時區設置,以闡釋更改區域性的影響。可以通過下列方法更改當前區域性:更改 Microsoft Windows 的“日期/時間”控制面板中的值,傳遞您自己的 DateTimeFormatInfo 對象,或將 CultureInfo 對象設置傳遞給不同的區域性。此表是說明自定義日期和時間說明符如何影響格式化的快速指南。請參閱該表下面闡釋這些說明符的代碼示例部分。
格式說明符 | 當前區域性 | 時區 | 輸出 |
---|---|---|---|
d, M | en-US | GMT | 12, 4 |
d, M | es-MX | GMT | 12, 4 |
d MMMM | en-US | GMT | 12 April |
d MMMM | es-MX | GMT | 12 Abril |
dddd MMMM yy gg | en-US | GMT | Thursday April 01 A.D. |
dddd MMMM yy gg | es-MX | GMT | Jueves Abril 01 DC |
h , m: s | en-US | GMT | 6 , 13: 12 |
hh,mm:ss | en-US | GMT | 06,13:12 |
HH-mm-ss-tt | en-US | GMT | 06-13-12-AM |
hh:mm, G\MT z | en-US | GMT | 05:13 GMT 0 |
hh:mm, G\MT z | en-US | GMT 10:00 | 05:13 GMT 10 |
hh:mm, G\MT zzz | en-US | GMT | 05:13 GMT 00:00 |
hh:mm, G\MT zzz | en-US | GMT -9:00 | 05:13 GMT -09:00 |
請注意,在某些語言(如 C#)中,“\”字符在與 ToString 方法共用時,它前面必須有轉義符。
下面的代碼示例闡釋如何從 DateTime 對象創建自定義格式化字符串。此示例假定當前區域性是美國英語 (en-US)。
[Visual Basic]
Dim MyDate As New DateTime(2000, 1, 1, 0, 0, 0)
Dim MyString As String = MyDate.ToString("dddd - d - MMMM")
//' In the U.S. English culture, MyString has the value: ' "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg")
//' In the U.S. English culture, MyString has the value: "2000 A.D.".
[C#]
DateTime MyDate = new DateTime(2000, 1, 1, 0, 0, 0);
String MyString = MyDate.ToString("dddd - d - MMMM");
// In the U.S. English culture, MyString has the value: "Saturday - 1 - January".
MyString = MyDate.ToString("yyyy gg");
// In the U.S. English culture, MyString has the value: "2000 A.D.".
分享:10條ASP.NET編程經驗技巧1、盡量減少表單回送 每當點擊Web網頁上的Button、LinkButton或ImageButton控件時,表單就會被發送到服務器上。如果控件的AutoPostBack屬性被設置為true,如果CheckBox、CheckBoxList等控件的狀態被改變后,也會使表單會發送回服務器。 每次當表單被發送回服
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發送Email實例(可帶附件)
- js實現廣告漂浮效果的小例子
- asp.net Repeater 數據綁定的具體實現
- Asp.Net 無刷新文件上傳并顯示進度條的實現方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數據庫(連接字符串的配置及獲取)
- asp.net頁面傳值測試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現分頁示例代碼
- 相關鏈接:
- 教程說明:
.Net教程-asp.net/c#字符格式化。