DateTimeFormatInfo.SetAllDateTimePatterns(String[], Char) メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定された標準書式指定文字列に対応する、カスタムの日付と時刻の書式指定文字列を設定します。
public:
void SetAllDateTimePatterns(cli::array <System::String ^> ^ patterns, char format);
public void SetAllDateTimePatterns (string[] patterns, char format);
[System.Runtime.InteropServices.ComVisible(false)]
public void SetAllDateTimePatterns (string[] patterns, char format);
member this.SetAllDateTimePatterns : string[] * char -> unit
[<System.Runtime.InteropServices.ComVisible(false)>]
member this.SetAllDateTimePatterns : string[] * char -> unit
Public Sub SetAllDateTimePatterns (patterns As String(), format As Char)
パラメーター
- patterns
- String[]
カスタム書式指定文字列の配列。
- format
- Char
patterns
パラメーターに指定されたカスタム書式指定文字列に関連付けられている標準書式指定文字列。
- 属性
例外
patterns
は null
か、または長さ 0 の配列です。
- または -
format
が有効な標準書式指定文字列でないか、パターンを設定できない標準書式指定文字列です。
patterns
は、値が null
である配列要素を含んでいます。
この DateTimeFormatInfo オブジェクトは読み取り専用です。
例
次の例では、"en-US" (英語 - 米国) カルチャを表す オブジェクトをインスタンス化CultureInfoし、それを使用して、"Y" 標準書式指定文字列を使用して日付と時刻の文字列の配列を解析します。 次に、 メソッドを SetAllDateTimePatterns 使用して新しいカスタム書式指定文字列を "Y" 標準書式指定文字列に関連付け、日付と時刻の文字列の配列の解析を試みます。 この例からの出力は、新しいカスタム書式指定文字列が解析操作と書式設定操作の両方で使用されることを示しています。
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
// Use standard en-US culture.
CultureInfo enUS = new CultureInfo("en-US");
string[] values = { "December 2010", "December, 2010",
"Dec-2010", "December-2010" };
Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name);
foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
Console.WriteLine(" " + pattern);
Console.WriteLine();
// Try to parse each date string using "Y" format specifier.
foreach (var value in values) {
try {
DateTime dat = DateTime.ParseExact(value, "Y", enUS);
Console.WriteLine(String.Format(enUS, " Parsed {0} as {1:Y}", value, dat));
}
catch (FormatException) {
Console.WriteLine(" Cannot parse {0}", value);
}
}
Console.WriteLine();
//Modify supported "Y" format.
enUS.DateTimeFormat.SetAllDateTimePatterns( new string[] { "MMM-yyyy" } , 'Y');
Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name);
foreach (var pattern in enUS.DateTimeFormat.GetAllDateTimePatterns('Y'))
Console.WriteLine(" " + pattern);
Console.WriteLine();
// Try to parse each date string using "Y" format specifier.
foreach (var value in values) {
try {
DateTime dat = DateTime.ParseExact(value, "Y", enUS);
Console.WriteLine(String.Format(enUS, " Parsed {0} as {1:Y}", value, dat));
}
catch (FormatException) {
Console.WriteLine(" Cannot parse {0}", value);
}
}
}
}
// The example displays the following output:
// Supported Y/y patterns for en-US culture:
// MMMM, yyyy
//
// Cannot parse December 2010
// Parsed December, 2010 as December, 2010
// Cannot parse Dec-2010
// Cannot parse December-2010
//
// New supported Y/y patterns for en-US culture:
// MMM-yyyy
//
// Cannot parse December 2010
// Cannot parse December, 2010
// Parsed Dec-2010 as Dec-2010
// Cannot parse December-2010
Imports System.Globalization
Module Example
Public Sub Main()
' Use standard en-US culture.
Dim enUS As New CultureInfo("en-US")
Dim values() As String = { "December 2010", "December, 2010",
"Dec-2010", "December-2010" }
Console.WriteLine("Supported Y/y patterns for {0} culture:", enUS.Name)
For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
Console.WriteLine(" " + pattern)
Next
Console.WriteLine()
' Try to parse each date string using "Y" format specifier.
For Each value In values
Try
Dim dat As Date = Date.ParseExact(value, "Y", enUS)
Console.WriteLine(String.Format(enUS, " Parsed {0} as {1:Y}", value, dat))
Catch e As FormatException
Console.WriteLine(" Cannot parse {0}", value)
End Try
Next
Console.WriteLine()
'Modify supported "Y" format.
enUS.DateTimeFormat.SetAllDateTimePatterns( { "MMM-yyyy" } , "Y"c)
Console.WriteLine("New supported Y/y patterns for {0} culture:", enUS.Name)
For Each pattern In enUS.DateTimeFormat.GetAllDateTimePatterns("Y"c)
Console.WriteLine(" " + pattern)
Next
Console.WriteLine()
' Try to parse each date string using "Y" format specifier.
For Each value In values
Try
Dim dat As Date = Date.ParseExact(value, "Y", enUS)
Console.WriteLine(String.Format(enUS, " Parsed {0} as {1:Y}", value, dat))
Catch e As FormatException
Console.WriteLine(" Cannot parse {0}", value)
End Try
Next
End Sub
End Module
' The example displays the following output:
' Supported Y/y patterns for en-US culture:
' MMMM, yyyy
'
' Cannot parse December 2010
' Parsed December, 2010 as December, 2010
' Cannot parse Dec-2010
' Cannot parse December-2010
'
' New supported Y/y patterns for en-US culture:
' MMM-yyyy
'
' Cannot parse December 2010
' Cannot parse December, 2010
' Parsed Dec-2010 as Dec-2010
' Cannot parse December-2010
注釈
メソッドは SetAllDateTimePatterns 、特定の標準の日付と時刻の書式指定文字列に対応するカスタム書式指定文字列を定義します。 日付と時刻の書式設定メソッドの呼び出しに で format
指定された標準の日付と時刻の書式指定文字列が含まれている場合、メソッドは配列の最初の要素を patterns
使用して、結果の文字列の形式を定義します。
警告
メソッドと TryParse
メソッドはParse
、日付と時刻の文字列表現を解析するときに、 のすべてのpatterns
文字列を完全に反復処理するわけではありません。 解析操作で特定の形式を持つ日付と時刻の文字列が必要な場合は、有効な形式の配列を、、DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)、または DateTimeOffset.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) メソッドにDateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)渡す必要があります。
"d"、"D"、"t"、"T"、および "y" または "Y" の標準日時書式指定文字列に対応するカスタム書式指定文字列を定義できます。 の値が他の format
標準書式指定文字列の場合、 メソッドは SetAllDateTimePatterns を ArgumentExceptionスローします。
カスタムの日付と時刻の書式指定文字列に日付の区切り記号が含まれている場合は、"/" カスタム書式指定子を特定の日付区切り記号に置き換える解析または書式設定メソッドに依存するのではなく、明示的に日付区切り記号を指定する必要があります。 たとえば、MM-DD-yyyy パターンを取得するには、"MM-DD-yyyy" というパターンを使用します。
適用対象
こちらもご覧ください
.NET