1. 以下4種時間格式化符號輸出的固定時間格式在各個區域設置中都應是相同的:
| 標准格式字符串 | 由 DateTimeFormatInfo.InvariantInfo 屬性定義 | 自定義格式字符串 |
| “O”或“o” | 無 | yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzz |
| “R”或“r” | RFC1123Pattern | ddd, dd MMM yyyy HH':'mm':'ss 'GMT' |
| “s” | SortableDateTimePattern | yyyy'-'MM'-'dd'T'HH':'mm':'ss |
| “u” | UniversalSortableDateTimePattern | yyyy'-'MM'-'dd HH':'mm':'ss'Z' |
2. 通過DateTimeFormatInfo.GetAllDateTimePatterns(char)函數可以得到與標准格式化字符串對應的自定義格式字符串。
1 using System; 2 using System.Globalization; 3 4 public class Example 5 { 6 public static void Main() 7 { 8 Console.WriteLine("'d' standard format string:"); 9 foreach (var customString in DateTimeFormatInfo.CurrentInfo.GetAllDateTimePatterns('d')) 10 //輸出與“d"標准格式化字符對應的自定義格式化字符串 11 Console.WriteLine(" {0}", customString); 12 } 13 }
3. “d”標准格式說明符表示通過特定區域性的 DateTimeFormatInfo.ShortDatePattern 屬性定義的自定義日期和時間格式字符串。
4. “D”標准格式說明符表示由當前的 DateTimeFormatInfo.LongDatePattern 屬性定義的自定義日期和時間格式字符串。
5. “f”標准格式說明符表示長日期(“D”)和短時間(“t”)模式的組合,由空格分隔。
6. “F”標准格式說明符表示由當前的 DateTimeFormatInfo.FullDateTimePattern 屬性定義的自定義日期和時間格式字符串。
7. “g”標准格式說明符表示短日期(“d”)和短時間(“t”)模式的組合,由空格分隔。
8. “G”標准格式說明符表示短日期(“d”)和長時間(“T”)模式的組合,由空格分隔。
9. “M”或“m”標准格式說明符表示由當前的 DateTimeFormatInfo.MonthDayPattern 屬性定義的自定義日期和時間格式字符串。
10. “O”或“o”標准格式說明符表示使用保留時區信息的模式的自定義日期和時間格式字符串,並發出符合 ISO8601 的結果字符串。
1. 對於 DateTime 值,“O”或“o”標准格式說明符對應於“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK”自定義格式字符串,對於 DateTimeOffset 值,“O”或“o”標准格式說明符則對應於“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz”自定義格式字符串。
2. “O”或“o”標准格式說明符(和“yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffK” 自定義格式字符串)利用 ISO 8601 表示時區信息的三種方式來保留 Kind 值的 DateTime 屬性:
1. DateTimeKind.Local 日期和時間值的時區組件是相對於 UTC 的偏移量(例如,+01:00,-07:00)。 所有 DateTimeOffset 值也以這種格式表示。
2. DateTimeKind.Utc 日期和時間值的時區組件使用“Z”(它代表零偏移量)以表示 UTC。
3. DateTimeKind.Unspecified 日期和時間值沒有時區信息。
3. 注意,如果你使用對應於“O”或“o”格式說明符的自定義格式字符串調用分析方法,則你不會獲得與“O”或“o”相同的結果。 這是因為使用自定義格式字符串的分析方法不能分析缺少時區組件的日期和時間值的字符串表示形式,或使用“Z”指示 UTC
11. “R”或“r”標准格式說明符表示由 DateTimeFormatInfo.RFC1123Pattern 屬性定義的自定義日期和時間格式字符串。 該模式反映已定義的標准,並且屬性是只讀的。 因此,無論所使用的區域性或所提供的格式提供程序是什么,它總是相同的。 定義格式字符串為“ddd, dd MMM yyyy HH':'mm':'ss 'GMT'”。 當使用此標准格式說明符時,格式設置或分析操作始終使用固定區域性。
12. “s”標准格式說明符表示由 DateTimeFormatInfo.SortableDateTimePattern 屬性定義的自定義日期和時間格式字符串。 該模式反映已定義的標准 (ISO 8601),並且屬性是只讀的。 因此,無論所使用的區域性或所提供的格式提供程序是什么,它總是相同的。 自定義格式字符串為“yyyy'-'MM'-'dd'T'HH':'mm':'ss”。
13. “t”標准格式說明符表示由當前的 DateTimeFormatInfo.ShortTimePattern 屬性定義的自定義日期和時間格式字符串。 例如,用於固定區域性的自定義格式字符串為“HH:mm”。
14. “T”標准格式說明符表示由特定區域性的 DateTimeFormatInfo.LongTimePattern 屬性定義的自定義日期和時間格式字符串。 例如,用於固定區域性的自定義格式字符串為“HH:mm:ss”。
15. “u”標准格式說明符表示由 DateTimeFormatInfo.UniversalSortableDateTimePattern 屬性定義的自定義日期和時間格式字符串。 該模式反映已定義的標准,並且屬性是只讀的。 因此,無論所使用的區域性或所提供的格式提供程序是什么,它總是相同的。 自定義格式字符串為“yyyy'-'MM'-'dd HH':'mm':'ss'Z'”。 當使用此標准格式說明符時,格式設置或分析操作始終使用固定區域性。
16. “U”標准格式說明符表示由特定區域性的 DateTimeFormatInfo.FullDateTimePattern 屬性定義的自定義日期和時間格式字符串。 此模式與“F”模式相同。 但是,在對 DateTime 值進行格式設置之前,該值自動轉換為 UTC。
