Dataformatstring属性设置(详解)
使用 DataFormatString 屬性來提供列中各項的自定義格式。
數據格式字符串由以冒號分隔的兩部分組成,形式為 { A : Bxx }。例如,格式化字符串 {0:F2} 將顯示帶兩位小數的定點數。
| 整個字符串必須放在大括號內,表示它是格式字符串,而不是實際字符串。大括號外的任何文本均顯示為實際文本。 |
冒號前的值(常規示例中為 A)指定在從零開始的參數列表中的參數索引。
| 此值只能設置為 0,因為每個單元格中只有一個值。 |
冒號后的字符(常規示例中為 B)指定值的顯示格式。下表列出了一些常用格式。
| C | 以貨幣格式顯示數值。 |
| D | 以十進制格式顯示數值。 |
| E | 以科學記數法(指數)格式顯示數值。 |
| F | 以固定格式顯示數值。 |
| G | 以常規格式顯示數值。 |
| N | 以數字格式顯示數值。 |
| X | 以十六進制格式顯示數值。 |
| 除 X 以指定的大小寫形式顯示十六進制字符之外,其他格式字符不區分大小寫。 |
格式字符后的值(常規示例中為 xx)指定顯示的值的有效位數或小數位數。
下表描述了用來格式化 DateTime 對象的標準格式說明符。
| d | 短日期模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassShortDatePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| D | 長日期模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassLongDatePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| t | 短時間模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassShortTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| T | 長時間模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassLongTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| f | 完整日期/時間模式(短時間) | 顯示長日期和短時間模式的組合,由空格分隔。 |
| F | 完整日期/時間模式(長時間) | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassFullDateTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| g | 常規日期/時間模式(短時間) | 顯示短日期和短時間模式的組合,由空格分隔。 |
| G | 常規日期/時間模式(長時間) | 顯示短日期和長時間模式的組合,由空格分隔。 |
| M 或 m | 月日模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassMonthDayPatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
| R 或 r | RFC1123 模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassRFC1123PatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。這是定義的標準,并且屬性是只讀的;因此,無論所使用的區域性或所提供的格式提供程序是什么,它總是相同的。屬性引用 CultureInfo.InvariantCulture 屬性并遵照自定義模式“ddd, dd MMM yyyy HH:mm:ss G\MT”。請注意,“GMT”中的“M”需要轉義符,因此它不被解釋。格式化并不修改 DateTime 的值,所以您必須在格式化之前將值調整為 GMT。 |
| s | 可排序的日期/時間模式;符合 ISO 8601 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassSortableDateTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。屬性引用 CultureInfo.InvariantCulture 屬性,格式遵照自定義模式“yyyy-MM-ddTHH:mm:ss”。 |
| u | 通用的可排序日期/時間模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassUniversalSortableDateTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。因為它是定義的標準,并且屬性是只讀的,因此無論區域性或格式提供程序是什么,模式總是相同的。格式化遵照自定義模式“yyyy-MM-dd HH:mm:ssZ”。格式化日期和時間時不進行時區轉換;所以,請在使用格式說明符之前將本地日期和時間轉換為通用時間。 |
| U | 通用的可排序日期/時間模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassFullDateTimePatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。顯示的時間為通用時間而不是本地時間,等效于 DateTime 值。 |
| Y 或 y | 年月模式 | 顯示由與當前線程關聯的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassYearMonthPatternTopic"> 屬性定義的模式或者由指定格式提供程序定義的模式。 |
下表描述了自定義格式說明符以及它們產生的結果。這些格式說明符的輸出受“區域選項”控制面板中的當前區域性和設置的影響。
| d | 顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則它顯示為一位數字。 請注意,如果“d”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準短日期模式格式說明符。如果“d”格式說明符與其他自定義格式說明符或者“%”字符一起傳遞,則它被解釋為自定義格式說明符。 |
| dd | 顯示月份的當前日期,以 1 到 31 之間的一個數字表示,包括 1 和 31。如果日期只有一位數字 (1-9),則將其格式化為帶有前導 0 (01-09)。 |
| ddd | 顯示指定的 DateTime 的日期部分縮寫名稱。如果未提供特定的有效格式提供程序(實現具有預期屬性的 <link tabindex="" keywords="frlrfSystemIFormatProviderClassTopic"> 的非空對象),則使用 <link tabindex="" keywords="frlrfSystemGlobalizationCultureInfoClassDateTimeFormatTopic"> 的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassAbbreviatedDayNamesTopic"> 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedDayNames 屬性。 |
| dddd(外加任意數量的附加“d”字符) | 顯示指定的 DateTime 的日期全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassDayNamesTopic"> 屬性及其與當前所使用線程關聯的當前區域性。否則,使用來自指定格式提供程序的 DayNames 屬性。 |
| f | 顯示秒部分的最高有效位。 請注意,如果“f”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為完整的(長日期 + 短時間)格式說明符。如果“f”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。 使用 <link tabindex="" keywords="Overload:System.DateTime.ParseExact"> 方法進行分析時,所使用的“f”格式說明符的位數指示要分析的秒部分的最高有效位的位數。 |
| ff | 顯示秒部分的兩個最高有效位。 |
| fff | 顯示秒部分的三個最高有效位。 |
| ffff | 顯示秒部分的四個最高有效位。 |
| fffff | 顯示秒部分的五個最高有效位。 |
| ffffff | 顯示秒部分的六個最高有效位。 |
| fffffff | 顯示秒部分的七個最高有效位。 |
| F | 顯示秒部分的最高有效位。如果該位為零,則不顯示任何信息。 使用 <link tabindex="" keywords="M:System.DateTime.ParseExact(System.String,System.String,System.IFormatProvider)"> 方法進行分析時,所使用的“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 的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassAbbreviatedMonthNamesTopic"> 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 AbbreviatedMonthNames 屬性。 |
| MMMM | 顯示指定的 DateTime 的月的全名。如果未提供特定的有效格式提供程序(一個非空對象,可實現具有預期屬性的 IFormatProvider),則使用 DateTimeFormat 的<link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassMonthNamesTopic"> 屬性及其與當前線程關聯的當前區域性。否則,使用來自指定格式提供程序的 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 的 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassAMDesignatorTopic">(或 <link tabindex="" keywords="frlrfSystemGlobalizationDateTimeFormatInfoClassPMDesignatorTopic">)屬性及其與當前線程關聯的當前區域性。否則,使用來自指定 IFormatProvider 的 AMDesignator(或 PMDesignator)屬性。如果對于指定的 DateTime 所經過的總整小時數小于 12,則使用 AMDesignator。否則,使用 PMDesignator。 請注意,如果“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),則它顯示為一位數字。 請注意,如果“y”格式說明符單獨使用,沒有其他自定義格式字符串,則它被解釋為標準短日期模式格式說明符。如果“y”格式說明符與其他自定義格式說明符或“%”字符一起傳遞,則它被解釋為自定義格式說明符。 |
| 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:00 到 +13:00。如果偏移量為一位數 (0-9),則將其格式化為前面帶有 0 (01-09) 并帶有適當的前導符號。時區設置以 +X 或 –X 的形式指定,其中 X 是相對于 GMT 的小時偏差。顯示的偏差受夏時制的影響。 |
| : | 時間分隔符。 |
| / | 日期分隔符。 |
| " | 帶引號的字符串。顯示轉義符 (/) 之后兩個引號之間的任何字符串的文本值。 |
| ' | 帶引號的字符串。顯示兩個“'”字符之間的任何字符串的文本值。 |
| %c | 其中 c 既是標準格式說明符又是自定義格式說明符,顯示與格式說明符關聯的自定義格式模式。 請注意,如果格式說明符作為單個字符來單獨使用,它將被解釋成標準格式說明符。只有包含兩個或更多字符的格式說明符被解釋為自定義格式說明符。說明符可以被同時定義為標準和自定義格式說明符,要顯示此種說明符的自定義格式,請在說明符之前加“%”符號。 |
| \c | 其中 c 是任意字符,轉義符將下一個字符顯示為文本。在此上下文中,轉義符不能用于創建轉義序列(如“\n”表示換行)。 |
| 任何其他字符 | 其他字符作為文本直接寫入輸出字符串。 |
向 DateTime.ToString 傳遞自定義模式時,模式必須至少為兩個字符長。如果只傳遞“d”,則公共語言運行庫將其解釋為標準格式說明符,這是因為所有單個格式說明符都被解釋為標準格式說明符。如果傳遞單個“h”,則引發異常,原因是不存在標準的“h”格式說明符。若要只使用單個自定義格式進行格式化,請在說明符的前面或后面添加一個空格。例如,格式字符串“h”被解釋為自定義格式字符串。
| 設置日期格式時,必須設置HtmlEncode屬性為false,DataFormatString才能起作用! 如: <asp:BoundField DataField="AddTime" HeaderText="AddTime" SortExpression="AddTime" DataFormatString="{0:yyyy年MM月dd日}" HtmlEncode="False" /> |
總結
以上是生活随笔為你收集整理的Dataformatstring属性设置(详解)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OCR——阿里OCR方案
- 下一篇: GridView和DataFormatS