DateTimeFormatInfo.GetAllDateTimePatterns メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
日付と時刻の値を形式指定できる標準パターンを返します。
オーバーロード
| GetAllDateTimePatterns() |
日付と時刻の値を形式指定できるすべての標準パターンを返します。 |
| GetAllDateTimePatterns(Char) |
指定された標準書式指定文字列を使用して日付と時刻の値を形式指定できるすべてのパターンを返します。 |
GetAllDateTimePatterns()
日付と時刻の値を形式指定できるすべての標準パターンを返します。
public:
cli::array <System::String ^> ^ GetAllDateTimePatterns();
public string[] GetAllDateTimePatterns ();
member this.GetAllDateTimePatterns : unit -> string[]
Public Function GetAllDateTimePatterns () As String()
戻り値
日付と時刻の値を形式指定できる標準パターンを格納する配列。
例
次の例では、インバリアント カルチャの日付と時刻の書式指定文字列と、その書式指定文字列を使用して特定の日付を書式設定するときに生成される結果文字列を表示します。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
DateTime date = new DateTime(2014, 8, 28, 12, 28, 30);
DateTimeFormatInfo invDTF = new DateTimeFormatInfo();
String[] formats = invDTF.GetAllDateTimePatterns();
Console.WriteLine("{0,-40} {1}\n", "Pattern", "Result String");
foreach (var fmt in formats)
Console.WriteLine("{0,-40} {1}", fmt, date.ToString(fmt));
}
}
// The example displays the following output:
// Pattern Result String
//
// MM/dd/yyyy 08/28/2014
// yyyy-MM-dd 2014-08-28
// dddd, dd MMMM yyyy Thursday, 28 August 2014
// dddd, dd MMMM yyyy HH:mm Thursday, 28 August 2014 12:28
// dddd, dd MMMM yyyy hh:mm tt Thursday, 28 August 2014 12:28 PM
// dddd, dd MMMM yyyy H:mm Thursday, 28 August 2014 12:28
// dddd, dd MMMM yyyy h:mm tt Thursday, 28 August 2014 12:28 PM
// dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
// MM/dd/yyyy HH:mm 08/28/2014 12:28
// MM/dd/yyyy hh:mm tt 08/28/2014 12:28 PM
// MM/dd/yyyy H:mm 08/28/2014 12:28
// MM/dd/yyyy h:mm tt 08/28/2014 12:28 PM
// yyyy-MM-dd HH:mm 2014-08-28 12:28
// yyyy-MM-dd hh:mm tt 2014-08-28 12:28 PM
// yyyy-MM-dd H:mm 2014-08-28 12:28
// yyyy-MM-dd h:mm tt 2014-08-28 12:28 PM
// MM/dd/yyyy HH:mm:ss 08/28/2014 12:28:30
// yyyy-MM-dd HH:mm:ss 2014-08-28 12:28:30
// MMMM dd August 28
// MMMM dd August 28
// yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
// yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
// ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
// ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
// yyyy'-'MM'-'dd'T'HH':'mm':'ss 2014-08-28T12:28:30
// HH:mm 12:28
// hh:mm tt 12:28 PM
// H:mm 12:28
// h:mm tt 12:28 PM
// HH:mm:ss 12:28:30
// yyyy'-'MM'-'dd HH':'mm':'ss'Z' 2014-08-28 12:28:30Z
// dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
// yyyy MMMM 2014 August
// yyyy MMMM 2014 August
Imports System.Globalization
Module Example
Public Sub Main()
Dim date1 As Date = #08/28/2014 12:28:30PM#
Dim invDTF As New DateTimeFormatInfo()
Dim formats() As String = invDTF.GetAllDateTimePatterns()
Console.WriteLine("{0,-40} {1}", "Pattern", "Result String")
Console.WriteLine()
For Each fmt In formats
Console.WriteLine("{0,-40} {1}", fmt, date1.ToString(fmt))
Next
End Sub
End Module
' The example displays the following output:
' Pattern Result String
'
' MM/dd/yyyy 08/28/2014
' yyyy-MM-dd 2014-08-28
' dddd, dd MMMM yyyy Thursday, 28 August 2014
' dddd, dd MMMM yyyy HH:mm Thursday, 28 August 2014 12:28
' dddd, dd MMMM yyyy hh:mm tt Thursday, 28 August 2014 12:28 PM
' dddd, dd MMMM yyyy H:mm Thursday, 28 August 2014 12:28
' dddd, dd MMMM yyyy h:mm tt Thursday, 28 August 2014 12:28 PM
' dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
' MM/dd/yyyy HH:mm 08/28/2014 12:28
' MM/dd/yyyy hh:mm tt 08/28/2014 12:28 PM
' MM/dd/yyyy H:mm 08/28/2014 12:28
' MM/dd/yyyy h:mm tt 08/28/2014 12:28 PM
' yyyy-MM-dd HH:mm 2014-08-28 12:28
' yyyy-MM-dd hh:mm tt 2014-08-28 12:28 PM
' yyyy-MM-dd H:mm 2014-08-28 12:28
' yyyy-MM-dd h:mm tt 2014-08-28 12:28 PM
' MM/dd/yyyy HH:mm:ss 08/28/2014 12:28:30
' yyyy-MM-dd HH:mm:ss 2014-08-28 12:28:30
' MMMM dd August 28
' MMMM dd August 28
' yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
' yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffK 2014-08-28T12:28:30.0000000
' ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
' ddd, dd MMM yyyy HH':'mm':'ss 'GMT' Thu, 28 Aug 2014 12:28:30 GMT
' yyyy'-'MM'-'dd'T'HH':'mm':'ss 2014-08-28T12:28:30
' HH:mm 12:28
' hh:mm tt 12:28 PM
' H:mm 12:28
' h:mm tt 12:28 PM
' HH:mm:ss 12:28:30
' yyyy'-'MM'-'dd HH':'mm':'ss'Z' 2014-08-28 12:28:30Z
' dddd, dd MMMM yyyy HH:mm:ss Thursday, 28 August 2014 12:28:30
' yyyy MMMM 2014 August
' yyyy MMMM 2014 August
この例では、 コンストラクターを DateTimeFormatInfo 呼び出して、不変カルチャを表す オブジェクトを DateTimeFormatInfo インスタンス化します。 また、 プロパティからインバリアント カルチャを表す をInvariantInfo取得DateTimeFormatInfoすることもできます。
注釈
このメソッドは、標準書式指定文字列に対応するすべてのカスタム書式指定文字列を含む配列を返します。 標準書式指定文字列の一覧については、「標準の日付と時刻の書式指定文字列」を参照してください。
書式設定操作では、 メソッドによって GetAllDateTimePatterns 返される配列でカスタム書式指定文字列を使用できます。 ただし、その書式設定操作で返される日付と時刻の値の文字列表現を、 メソッドと TryParse メソッドでParse常に正常に解析できるとは限りません。 したがって、 メソッドによって GetAllDateTimePatterns 返されるカスタム書式指定文字列を使用して、日付と時刻の値をラウンドトリップできると想定することはできません。 この問題を説明する例を次に示します。 イタリア (イタリア) カルチャの書式設定情報を含む オブジェクトを取得 DateTimeFormatInfo します。 メソッドによって返される配列内の各カスタム書式指定文字列を GetAllDateTimePatterns() メソッドに渡して DateTime.ToString(String) 、日付と時刻の文字列表現を作成します。 次の例では、 メソッドを呼び出してこの値の解析を DateTime.TryParse(String, DateTime) 試みます。 この例の出力に示すように、一部のカスタム書式指定文字列では、ラウンドトリップに成功した日付と時刻の値が生成されません。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CreateSpecificCulture("it-IT");
DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
DateTime date2;
int total = 0;
int noRoundTrip = 0;
foreach (var fmt in culture.DateTimeFormat.GetAllDateTimePatterns()) {
total += 1;
if (! DateTime.TryParse(date1.ToString(fmt), out date2)) {
noRoundTrip++;
Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')",
date1, fmt);
}
}
Console.WriteLine("\nUnable to round-trip {0} of {1} format strings.",
noRoundTrip, total);
}
}
// The example displays the following output:
// Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
// Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
// Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
// Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
// Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
// Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
// Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
// Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
// Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
// Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
// Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
// Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
// Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
// Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
// Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
// Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
// Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
// Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
// Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
// Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
// Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
// Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
// Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
// Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
// Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
// Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
// Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
// Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
// Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
// Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
// Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
// Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
// Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
// Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
// Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
// Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
// Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
// Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
// Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
// Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
// Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
// Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
//
// Unable to round-trip 42 of 98 format strings.
Imports System.Globalization
Module Example
Public Sub Main()
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("it-IT")
Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
Dim date2 As DateTime
Dim total, noRoundTrip As Integer
For Each fmt In culture.DateTimeFormat.GetAllDateTimePatterns()
total += 1
If Not DateTime.TryParse(date1.ToString(fmt), date2)
noRoundTrip += 1
Console.WriteLine("Unable to parse {0:" + fmt + "} (format '{1}')",
date1, fmt)
End If
Next
Console.WriteLine()
Console.WriteLine("Unable to round-trip {0} of {1} format strings.",
noRoundTrip, total)
End Sub
End Module
' The example displays the following output:
' Unable to parse Tuesday 1 February 2011 7.30 (format 'dddd d MMMM yyyy H.mm')
' Unable to parse Tuesday 1 February 2011 07.30 (format 'dddd d MMMM yyyy HH.mm')
' Unable to parse 1-Feb-11 7.30 (format 'd-MMM-yy H.mm')
' Unable to parse 1-Feb-11 07.30 (format 'd-MMM-yy HH.mm')
' Unable to parse 1 February 2011 7.30 (format 'd MMMM yyyy H.mm')
' Unable to parse 1 February 2011 07.30 (format 'd MMMM yyyy HH.mm')
' Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
' Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
' Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
' Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
' Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
' Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
' Unable to parse 01/02/2011 7.30 (format 'dd/MM/yyyy H.mm')
' Unable to parse 01/02/2011 07.30 (format 'dd/MM/yyyy HH.mm')
' Unable to parse 01/Feb/2011 7.30 (format 'dd/MMM/yyyy H.mm')
' Unable to parse 01/Feb/2011 07.30 (format 'dd/MMM/yyyy HH.mm')
' Unable to parse 01/02/11 7.30 (format 'dd/MM/yy H.mm')
' Unable to parse 01/02/11 07.30 (format 'dd/MM/yy HH.mm')
' Unable to parse 01.2.11 7.30 (format 'dd.M.yy H.mm')
' Unable to parse 01.2.11 07.30 (format 'dd.M.yy HH.mm')
' Unable to parse 1/2/11 7.30 (format 'd/M/yy H.mm')
' Unable to parse 1/2/11 07.30 (format 'd/M/yy HH.mm')
' Unable to parse 2011-02-01 7.30 (format 'yyyy-MM-dd H.mm')
' Unable to parse 2011-02-01 07.30 (format 'yyyy-MM-dd HH.mm')
' Unable to parse 01/02/2011 7.30.45 (format 'dd/MM/yyyy H.mm.ss')
' Unable to parse 01/02/2011 07.30.45 (format 'dd/MM/yyyy HH.mm.ss')
' Unable to parse 01/Feb/2011 7.30.45 (format 'dd/MMM/yyyy H.mm.ss')
' Unable to parse 01/Feb/2011 07.30.45 (format 'dd/MMM/yyyy HH.mm.ss')
' Unable to parse 01/02/11 7.30.45 (format 'dd/MM/yy H.mm.ss')
' Unable to parse 01/02/11 07.30.45 (format 'dd/MM/yy HH.mm.ss')
' Unable to parse 01.2.11 7.30.45 (format 'dd.M.yy H.mm.ss')
' Unable to parse 01.2.11 07.30.45 (format 'dd.M.yy HH.mm.ss')
' Unable to parse 1/2/11 7.30.45 (format 'd/M/yy H.mm.ss')
' Unable to parse 1/2/11 07.30.45 (format 'd/M/yy HH.mm.ss')
' Unable to parse 2011-02-01 7.30.45 (format 'yyyy-MM-dd H.mm.ss')
' Unable to parse 2011-02-01 07.30.45 (format 'yyyy-MM-dd HH.mm.ss')
' Unable to parse Tuesday 1 February 2011 7.30.45 (format 'dddd d MMMM yyyy H.mm.ss')
' Unable to parse Tuesday 1 February 2011 07.30.45 (format 'dddd d MMMM yyyy HH.mm.ss')
' Unable to parse 1-Feb-11 7.30.45 (format 'd-MMM-yy H.mm.ss')
' Unable to parse 1-Feb-11 07.30.45 (format 'd-MMM-yy HH.mm.ss')
' Unable to parse 1 February 2011 7.30.45 (format 'd MMMM yyyy H.mm.ss')
' Unable to parse 1 February 2011 07.30.45 (format 'd MMMM yyyy HH.mm.ss')
'
' Unable to round-trip 42 of 98 format strings.
定義済みのカスタム形式で表すことができる日付と時刻の文字列形式を解析するには、次のいずれかのメソッドを呼び出します。
DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
メソッドによって GetAllDateTimePatterns 返される配列内のカスタム書式指定文字列は、オブジェクトが書式設定情報を提供するカルチャの現在の DateTimeFormatInfo カレンダーによって異なります。 カレンダーが変更されると、このメソッドによって返される配列も変更されます。
こちらもご覧ください
適用対象
GetAllDateTimePatterns(Char)
指定された標準書式指定文字列を使用して日付と時刻の値を形式指定できるすべてのパターンを返します。
public:
cli::array <System::String ^> ^ GetAllDateTimePatterns(char format);
public string[] GetAllDateTimePatterns (char format);
member this.GetAllDateTimePatterns : char -> string[]
Public Function GetAllDateTimePatterns (format As Char) As String()
パラメーター
- format
- Char
標準書式指定文字列。
戻り値
指定された書式指定文字列を使用して日付と時刻の値を形式指定できる標準パターンを格納している配列。
例外
format は有効な標準書式指定文字列ではありません。
例
次の使用例は、現在の予定表の日付と時刻のパターンを表示します。
#using <System.dll>
using namespace System;
using namespace System::Globalization;
public ref class SamplesDateTimeFormatInfo
{
public:
static void Main()
{
// Creates a new DateTimeFormatinfo.
DateTimeFormatInfo^ myDtfi = gcnew DateTimeFormatInfo;
// Gets and prints all the patterns
array<String^>^myPatternsArray = myDtfi->GetAllDateTimePatterns();
Console::WriteLine( "ALL the patterns:" );
PrintIndexAndValues( myPatternsArray );
// Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'd' );
Console::WriteLine( "The patterns for 'd':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'D' );
Console::WriteLine( "The patterns for 'D':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'f' );
Console::WriteLine( "The patterns for 'f':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'F' );
Console::WriteLine( "The patterns for 'F':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'r' );
Console::WriteLine( "The patterns for 'r':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi->GetAllDateTimePatterns( 'R' );
Console::WriteLine( "The patterns for 'R':" );
PrintIndexAndValues( myPatternsArray );
}
public:
static void PrintIndexAndValues( array<String^>^myArray ) {
int i = 0;
for each ( String^ s in myArray )
Console::WriteLine( "\t[{0}]:\t{1}", i++, s );
Console::WriteLine();
}
};
int main()
{
SamplesDateTimeFormatInfo::Main();
}
/*
This code produces the following output.
ALL the patterns:
[0]: MM/dd/yyyy
[1]: dddd, dd MMMM yyyy
[2]: dddd, dd MMMM yyyy HH:mm
[3]: dddd, dd MMMM yyyy hh:mm tt
[4]: dddd, dd MMMM yyyy H:mm
[5]: dddd, dd MMMM yyyy h:mm tt
[6]: dddd, dd MMMM yyyy HH:mm:ss
[7]: MM/dd/yyyy HH:mm
[8]: MM/dd/yyyy hh:mm tt
[9]: MM/dd/yyyy H:mm
[10]: MM/dd/yyyy h:mm tt
[11]: MM/dd/yyyy HH:mm:ss
[12]: MMMM dd
[13]: MMMM dd
[14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
[17]: HH:mm
[18]: hh:mm tt
[19]: H:mm
[20]: h:mm tt
[21]: HH:mm:ss
[22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
[23]: dddd, dd MMMM yyyy HH:mm:ss
[24]: yyyy MMMM
[25]: yyyy MMMM
The patterns for 'd':
[0]: MM/dd/yyyy
The patterns for 'D':
[0]: dddd, dd MMMM yyyy
The patterns for 'f':
[0]: dddd, dd MMMM yyyy HH:mm
[1]: dddd, dd MMMM yyyy hh:mm tt
[2]: dddd, dd MMMM yyyy H:mm
[3]: dddd, dd MMMM yyyy h:mm tt
The patterns for 'F':
[0]: dddd, dd MMMM yyyy HH:mm:ss
The patterns for 'r':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
The patterns for 'R':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/
using System;
using System.Globalization;
public class SamplesDateTimeFormatInfo {
public static void Main() {
// Creates a new DateTimeFormatinfo.
DateTimeFormatInfo myDtfi = new DateTimeFormatInfo();
// Gets and prints all the patterns.
String[] myPatternsArray = myDtfi.GetAllDateTimePatterns();
Console.WriteLine( "ALL the patterns:" );
PrintIndexAndValues( myPatternsArray );
// Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi.GetAllDateTimePatterns('d');
Console.WriteLine( "The patterns for 'd':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('D');
Console.WriteLine( "The patterns for 'D':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('f');
Console.WriteLine( "The patterns for 'f':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('F');
Console.WriteLine( "The patterns for 'F':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('r');
Console.WriteLine( "The patterns for 'r':" );
PrintIndexAndValues( myPatternsArray );
myPatternsArray = myDtfi.GetAllDateTimePatterns('R');
Console.WriteLine( "The patterns for 'R':" );
PrintIndexAndValues( myPatternsArray );
}
public static void PrintIndexAndValues( String[] myArray ) {
int i = 0;
foreach ( string s in myArray )
Console.WriteLine( "\t[{0}]:\t{1}", i++, s );
Console.WriteLine();
}
}
/*
This code produces the following output.
ALL the patterns:
[0]: MM/dd/yyyy
[1]: dddd, dd MMMM yyyy
[2]: dddd, dd MMMM yyyy HH:mm
[3]: dddd, dd MMMM yyyy hh:mm tt
[4]: dddd, dd MMMM yyyy H:mm
[5]: dddd, dd MMMM yyyy h:mm tt
[6]: dddd, dd MMMM yyyy HH:mm:ss
[7]: MM/dd/yyyy HH:mm
[8]: MM/dd/yyyy hh:mm tt
[9]: MM/dd/yyyy H:mm
[10]: MM/dd/yyyy h:mm tt
[11]: MM/dd/yyyy HH:mm:ss
[12]: MMMM dd
[13]: MMMM dd
[14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
[16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
[17]: HH:mm
[18]: hh:mm tt
[19]: H:mm
[20]: h:mm tt
[21]: HH:mm:ss
[22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
[23]: dddd, dd MMMM yyyy HH:mm:ss
[24]: yyyy MMMM
[25]: yyyy MMMM
The patterns for 'd':
[0]: MM/dd/yyyy
The patterns for 'D':
[0]: dddd, dd MMMM yyyy
The patterns for 'f':
[0]: dddd, dd MMMM yyyy HH:mm
[1]: dddd, dd MMMM yyyy hh:mm tt
[2]: dddd, dd MMMM yyyy H:mm
[3]: dddd, dd MMMM yyyy h:mm tt
The patterns for 'F':
[0]: dddd, dd MMMM yyyy HH:mm:ss
The patterns for 'r':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
The patterns for 'R':
[0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
*/
Imports System.Globalization
Public Class SamplesDateTimeFormatInfo
Public Shared Sub Main()
' Creates a new DateTimeFormatinfo.
Dim myDtfi As New DateTimeFormatInfo()
' Gets and prints all the patterns.
Dim myPatternsArray As String() = myDtfi.GetAllDateTimePatterns()
Console.WriteLine("ALL the patterns:")
PrintIndexAndValues(myPatternsArray)
' Gets and prints the pattern(s) associated with some of the format characters.
myPatternsArray = myDtfi.GetAllDateTimePatterns("d"c)
Console.WriteLine("The patterns for 'd':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("D"c)
Console.WriteLine("The patterns for 'D':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("f"c)
Console.WriteLine("The patterns for 'f':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("F"c)
Console.WriteLine("The patterns for 'F':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("r"c)
Console.WriteLine("The patterns for 'r':")
PrintIndexAndValues(myPatternsArray)
myPatternsArray = myDtfi.GetAllDateTimePatterns("R"c)
Console.WriteLine("The patterns for 'R':")
PrintIndexAndValues(myPatternsArray)
End Sub
Public Shared Sub PrintIndexAndValues(myArray() As String)
Dim i As Integer = 0
Dim s As String
For Each s In myArray
Console.WriteLine(ControlChars.Tab + "[{0}]:" + ControlChars.Tab _
+ "{1}", i, s)
i += 1
Next s
Console.WriteLine()
End Sub
End Class
' This code produces the following output.
'
' ALL the patterns:
' [0]: MM/dd/yyyy
' [1]: dddd, dd MMMM yyyy
' [2]: dddd, dd MMMM yyyy HH:mm
' [3]: dddd, dd MMMM yyyy hh:mm tt
' [4]: dddd, dd MMMM yyyy H:mm
' [5]: dddd, dd MMMM yyyy h:mm tt
' [6]: dddd, dd MMMM yyyy HH:mm:ss
' [7]: MM/dd/yyyy HH:mm
' [8]: MM/dd/yyyy hh:mm tt
' [9]: MM/dd/yyyy H:mm
' [10]: MM/dd/yyyy h:mm tt
' [11]: MM/dd/yyyy HH:mm:ss
' [12]: MMMM dd
' [13]: MMMM dd
' [14]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' [15]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
' [16]: yyyy'-'MM'-'dd'T'HH':'mm':'ss
' [17]: HH:mm
' [18]: hh:mm tt
' [19]: H:mm
' [20]: h:mm tt
' [21]: HH:mm:ss
' [22]: yyyy'-'MM'-'dd HH':'mm':'ss'Z'
' [23]: dddd, dd MMMM yyyy HH:mm:ss
' [24]: yyyy MMMM
' [25]: yyyy MMMM
'
' The patterns for 'd':
' [0]: MM/dd/yyyy
'
' The patterns for 'D':
' [0]: dddd, dd MMMM yyyy
'
' The patterns for 'f':
' [0]: dddd, dd MMMM yyyy HH:mm
' [1]: dddd, dd MMMM yyyy hh:mm tt
' [2]: dddd, dd MMMM yyyy H:mm
' [3]: dddd, dd MMMM yyyy h:mm tt
'
' The patterns for 'F':
' [0]: dddd, dd MMMM yyyy HH:mm:ss
'
' The patterns for 'r':
' [0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
'
' The patterns for 'R':
' [0]: ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
'
注釈
このメソッドは、特定の標準書式指定文字列に対応するカスタム書式指定文字列を含む配列を返します。 標準書式指定文字列の一覧については、「標準の日付と時刻の書式指定文字列」を参照してください。
書式設定操作では、 メソッドによって GetAllDateTimePatterns 返される配列でカスタム書式指定文字列を使用できます。 ただし、その書式設定操作で返される日付と時刻の値の文字列表現を、 メソッドと TryParse メソッドでParse常に正常に解析できるとは限りません。 したがって、 メソッドによって GetAllDateTimePatterns 返されるカスタム書式指定文字列を使用して、日付と時刻の値をラウンドトリップできると想定することはできません。 この問題を説明する例を次に示します。 ロシア語 (ロシア語) カルチャの書式設定情報を含む オブジェクトを取得 DateTimeFormatInfo します。 標準書式指定文字列ごとに メソッドを GetAllDateTimePatterns(Char) 呼び出し、返された配列内の各カスタム書式指定文字列を メソッドに渡して DateTime.ToString(String) 、日付と時刻の文字列表現を作成します。 次の例では、 メソッドを呼び出してこの値の解析を DateTime.TryParse(String, DateTime) 試みます。 この例の出力に示すように、一部のカスタム書式指定文字列では、ラウンドトリップに成功した日付と時刻の値が生成されません。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo culture = CultureInfo.CreateSpecificCulture("ru-RU");
char[] formats = { 'd', 'D', 'f', 'F', 'g', 'G', 'm', 'o',
'r', 's', 't', 'T', 'u', 'U', 'y' };
DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
DateTime date2;
int total = 0;
int noRoundTrip = 0;
foreach (var fmt in formats) {
total = 0;
noRoundTrip = 0;
foreach (var pattern in culture.DateTimeFormat.GetAllDateTimePatterns(fmt)) {
total++;
if (! DateTime.TryParse(date1.ToString(pattern), out date2)) {
noRoundTrip++;
Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')",
date1, pattern);
}
}
if (noRoundTrip > 0)
Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.\n",
fmt, noRoundTrip, total);
else
Console.WriteLine("{0}: All custom format strings round trip.\n", fmt);
}
}
}
// The example displays the following output:
// d: All custom format strings round trip.
//
// Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
// Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
// D: Unable to round-trip 2 of 2 format strings.
//
// Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
// Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
// Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
// Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
// f: Unable to round-trip 4 of 4 format strings.
//
// Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
// Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
// F: Unable to round-trip 4 of 4 format strings.
//
// g: All custom format strings round trip.
//
// G: All custom format strings round trip.
//
// m: All custom format strings round trip.
//
// o: All custom format strings round trip.
//
// r: All custom format strings round trip.
//
// s: All custom format strings round trip.
//
// t: All custom format strings round trip.
//
// T: All custom format strings round trip.
//
// u: All custom format strings round trip.
//
// Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
// Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
// Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
// U: Unable to round-trip 4 of 4 format strings.
//
// y: All custom format strings round trip.
Imports System.Globalization
Module Example
Public Sub Main()
Dim culture As CultureInfo = CultureInfo.CreateSpecificCulture("ru-RU")
Dim formats() As String = { "d", "D", "f", "F", "g", "G", "m",
"o", "r", "s", "t", "T", "u", "U", "y" }
Dim date1 = New DateTime(2011, 02, 01, 7, 30, 45, 0)
Dim date2 As DateTime
Dim total, noRoundTrip As Integer
For Each fmt In formats
total = 0 : noRoundTrip = 0
For Each pattern In culture.DateTimeFormat.GetAllDateTimePatterns(CChar(fmt))
total += 1
If Not DateTime.TryParse(date1.ToString(pattern), date2)
noRoundTrip += 1
Console.WriteLine("Unable to parse {0:" + pattern + "} (format '{1}')",
date1, pattern)
End If
Next
If noRoundTrip > 0 Then
Console.WriteLine("{0}: Unable to round-trip {1} of {2} format strings.",
fmt, noRoundTrip, total)
Console.WriteLine()
Else
Console.WriteLine("{0}: All custom format strings round trip.", fmt)
Console.WriteLine()
End If
Next
End Sub
End Module
' The example displays the following output:
' d: All custom format strings round trip.
'
' Unable to parse 1 February 2011 г. (format 'd MMMM yyyy 'г.'')
' Unable to parse 01 February 2011 г. (format 'dd MMMM yyyy 'г.'')
' D: Unable to round-trip 2 of 2 format strings.
'
' Unable to parse 1 February 2011 г. 7:30 (format 'd MMMM yyyy 'г.' H:mm')
' Unable to parse 1 February 2011 г. 07:30 (format 'd MMMM yyyy 'г.' HH:mm')
' Unable to parse 01 February 2011 г. 7:30 (format 'dd MMMM yyyy 'г.' H:mm')
' Unable to parse 01 February 2011 г. 07:30 (format 'dd MMMM yyyy 'г.' HH:mm')
' f: Unable to round-trip 4 of 4 format strings.
'
' Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
' Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
' F: Unable to round-trip 4 of 4 format strings.
'
' g: All custom format strings round trip.
'
' G: All custom format strings round trip.
'
' m: All custom format strings round trip.
'
' o: All custom format strings round trip.
'
' r: All custom format strings round trip.
'
' s: All custom format strings round trip.
'
' t: All custom format strings round trip.
'
' T: All custom format strings round trip.
'
' u: All custom format strings round trip.
'
' Unable to parse 1 February 2011 г. 7:30:45 (format 'd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 1 February 2011 г. 07:30:45 (format 'd MMMM yyyy 'г.' HH:mm:ss')
' Unable to parse 01 February 2011 г. 7:30:45 (format 'dd MMMM yyyy 'г.' H:mm:ss')
' Unable to parse 01 February 2011 г. 07:30:45 (format 'dd MMMM yyyy 'г.' HH:mm:ss')
' U: Unable to round-trip 4 of 4 format strings.
'
' y: All custom format strings round trip.
定義済みのカスタム形式で表すことができる日付と時刻の文字列形式を解析するには、次のいずれかのメソッドを呼び出します。
DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)
DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)
DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
メソッドによって GetAllDateTimePatterns 返される配列内のカスタム書式指定文字列は、オブジェクトが書式設定情報を提供するカルチャの現在の DateTimeFormatInfo カレンダーによって異なります。 カレンダーが変更されると、このメソッドによって返される配列も変更されます。