DateTime.TryParseExact DateTime.TryParseExact DateTime.TryParseExact DateTime.TryParseExact Method

Definition

指定した文字列形式の日付と時刻を等価の DateTime の値に変換します。 Converts the specified string representation of a date and time to its DateTime equivalent. 文字列形式の書式は、指定した書式と完全に一致する必要があります。 The format of the string representation must match a specified format exactly. このメソッドは、変換に成功したかどうかを示す値を返します。 The method returns a value that indicates whether the conversion succeeded.

Overloads

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTime に変換します。 Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. 文字列形式の書式は、指定した書式と完全に一致する必要があります。 The format of the string representation must match the specified format exactly. このメソッドは、変換に成功したかどうかを示す値を返します。 The method returns a value that indicates whether the conversion succeeded.

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

指定した書式の配列、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTime に変換します。 Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. 文字列形式の書式は、指定した書式の少なくとも 1 つと完全に一致する必要があります。 The format of the string representation must match at least one of the specified formats exactly. このメソッドは、変換に成功したかどうかを示す値を返します。 The method returns a value that indicates whether the conversion succeeded.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

public:
 static bool TryParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles *  -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

パラメーター

format
ReadOnlySpan<Char>

Returns

TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)

public:
 static bool TryParseExact(ReadOnlySpan<char> s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles *  -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

パラメーター

formats
String[]

Returns

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTime に変換します。 Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. 文字列形式の書式は、指定した書式と完全に一致する必要があります。 The format of the string representation must match the specified format exactly. このメソッドは、変換に成功したかどうかを示す値を返します。 The method returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles *  -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

パラメーター

s
String String String String

変換する日付と時刻を格納した文字列。 A string containing a date and time to convert.

format
String String String String

s に必要な書式。 The required format of s.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。 An object that supplies culture-specific formatting information about s.

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

s の許可された書式を示す 1 つまたは複数の列挙値のビットごとの組み合わせ。 A bitwise combination of one or more enumeration values that indicate the permitted format of s.

result
DateTime DateTime DateTime DateTime

変換に成功した場合は、s に格納された日時と等しい DateTime 値が格納されます。変換に失敗した場合は MinValue が格納されます。 When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s パラメーターまたは format パラメーターが null の場合、空の文字列の場合、あるいは format に指定されたパターンに一致する日時が含まれていない場合、変換は失敗します。 The conversion fails if either the s or format parameter is null, is an empty string, or does not contain a date and time that correspond to the pattern specified in format. このパラメーターは初期化せずに渡されます。 This parameter is passed uninitialized.

Returns

true が正常に変換された場合は s。それ以外の場合は false true if s was converted successfully; otherwise, false.

Exceptions

styles は有効な DateTimeStyles 値ではありません。 styles is not a valid DateTimeStyles value. - または - -or- stylesDateTimeStyles 値の正しくない組み合わせが含まれています (たとえば、AssumeLocalAssumeUniversal の両方などです)。 styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

Examples

次の例で、DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッド。The following example demonstrates the DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method. なお、文字列"5/01/2009 8時 30分 AM"ことはできませんが正常に解析されたときに、stylesパラメーターと等しいDateTimeStyles.Noneでは、先頭のスペースは許可されていないため、formatします。Note that the string " 5/01/2009 8:30 AM" cannot be parsed successfully when the styles parameter equals DateTimeStyles.None because leading spaces are not allowed by format. 文字列ではさらに、"5/01/2009 09時 00分"を正常に解析されたことはできません、formatの"MM dd/yyyyhh:mm"日付文字列としての先頭をゼロ、1 か月の数の前はためformatが必要です。Additionally, the string "5/01/2009 09:00" cannot be parsed successfully with a format of "MM/dd/yyyyhh:mm" because the date string does not precede the month number with a leading zero, as format requires.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo enUS = new CultureInfo("en-US"); 
      string dateString;
      DateTime dateValue;
      
      // Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM";
      if (DateTime.TryParseExact(dateString, "g", enUS, 
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "g", enUS, 
                                 DateTimeStyles.AllowLeadingWhite, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      
      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, 
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, 
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00"; 
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, 
                              DateTimeStyles.AdjustToUniversal, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
           
      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                     DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, 
                                 DateTimeStyles.RoundtripKind, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, 
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

   }
}
// The example displays the following output:
//    ' 5/01/2009 8:30 AM' is not in an acceptable format.
//    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
//    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
//    '5/01/2009 09:00' is not in an acceptable format.
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim enUS As New CultureInfo("en-US") 
      Dim dateString As String
      Dim dateValue As Date
      
      ' Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM"
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.AllowLeadingWhite, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.AdjustToUniversal, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                            DateTimeStyles.RoundtripKind, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
   End Sub
End Module
' The example displays the following output:
'    ' 5/01/2009 8:30 AM' is not in an acceptable format.
'    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
'    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'    '5/01/2009 09:00' is not in an acceptable format.
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).

Remarks

DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッドで定義された書式である必要があります日付の文字列表現を解析し、formatパラメーター。The DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method parses the string representation of a date, which must be in the format defined by the format parameter. 似ています、DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles)点を除いて、メソッド、TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッドは、変換が失敗した場合に例外をスローしません。It is similar to the DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method, except that the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method does not throw an exception if the conversion fails.

sパラメーターを解析するには、日付と時刻が含まれていますで定義された書式である必要があります、formatパラメーター。The s parameter contains the date and time to parse and must be in a format defined by the format parameter. 日付、時刻、タイム ゾーン要素が存在する場合sで指定された順序で現れる必要がありますもformatします。If date, time, and time zone elements are present in s, they must also appear in the order specified by format. 場合format日付を定義します。 時刻要素がないと、解析操作が成功した結果DateTime値が午前 0 時 (00: 00:00)。If format defines a date with no time element and the parse operation succeeds, the resulting DateTime value has a time of midnight (00:00:00). 場合format、時間を定義する日付要素がないと、解析操作が成功すると、結果DateTime既定値が日付DateTime.Now.Dateの日が設定またはDateTime.MinValue.Date場合stylesが含まれています、DateTimeStyles.NoCurrentDateDefaultフラグ。If format defines a time with no date element and the parse operation succeeds, the resulting DateTime value by default has a date of DateTime.Now.Date, or it has a date of DateTime.MinValue.Date if styles includes the DateTimeStyles.NoCurrentDateDefault flag. styleパラメーターを指定するかどうか、sパラメーターは、先頭、内部、または末尾の空白文字を含めることができます。The style parameter determines whether the s parameter can contain leading, inner, or trailing white space characters.

場合sタイム ゾーンの情報が含まれていない、 Kind 、返されたプロパティDateTimeオブジェクトがDateTimeKind.Unspecifiedします。If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. 使用してこの動作を変更することができます、DateTimeStyles.AssumeLocalフラグ、返された、DateTimeKindプロパティはDateTimeKind.Local、またはを使用して、DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversalフラグ、返された、DateTimeKindプロパティはDateTimeKind.Utcします。This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. S にタイム ゾーン情報が含まれている場合、時刻が現地時刻に変換されます、必要に応じて、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localします。If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. 使用してこの動作を変更することができます、DateTimeStyles.RoundtripKindせず、現地時刻を世界協定時刻 (UTC) に変換を設定するフラグ、KindプロパティをDateTimeKind.Utcします。This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and set the Kind property to DateTimeKind.Utc.

formatパラメーターには想定される形式に対応するパターンが含まれています、sパラメーター。The format parameter contains a pattern that corresponds to the expected format of the s parameter. パターン、formatパラメーターは、1 つまたは複数のカスタム書式指定子から、カスタム日時書式指定文字列テーブル、またはから定義済みのパターンを識別する 1 つの標準書式指定子、Standard Date and Time Format Stringsテーブル。The pattern in the format parameter consists of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

カスタム書式パターンでは日付または時刻の区切り記号を使用しない場合は、インバリアント カルチャを使用して、providerパラメーターおよび各カスタムの最も長い形式の書式指定子。If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. たとえば、パターンに時間を指定する場合は、"H"狭義の形式ではなくより多くのフォーム"HH"を指定します。For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

注意

必要とするのではなくs解析操作が成功するための 1 つの形式に準拠して、呼び出すことができます、DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)メソッドと、許可されている複数の形式を指定します。Rather than requiring that s conform to a single format for the parse operation to succeed, you can call the DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method and specify multiple permitted formats. これにより、解析操作が成功する可能性が高くなります。This makes the parse operation more likely to succeed.

特定の日付と時刻のシンボルとで使用される特定の言語で曜日の名前) などの文字列sによって定義されます、providerパラメーターの正確な形式はs場合formatは標準的な形式です。指定子の文字列。The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. providerパラメーターには、次のいずれかを指定できます。The provider parameter can be any of the following:

場合providernullCultureInfo現在のカルチャに対応するオブジェクトを使用します。If provider is null, the CultureInfo object that corresponds to the current culture is used.

stylesパラメーターには 1 つまたは複数のメンバーが含まれています、DateTimeStylesかどうかと、空白文字で定義されていないかを決定する列挙体formatに表示できるs解析操作の正確な動作を制御します。The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. 次の表をそれぞれどのように説明のメンバー、DateTimeStyles列挙型の運用に与える影響、TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッド。The following table describes how each member of the DateTimeStyles enumeration affects the operation of the TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method.

DateTimeStyles メンバーDateTimeStyles member 説明Description
AdjustToUniversal 解析sと、必要に応じて、UTC に変換します。Parses s and, if necessary, converts it to UTC. 場合s、タイム ゾーン オフセットが含まれて 場合sタイム ゾーン情報が含まれていないが、stylesが含まれています、DateTimeStyles.AssumeLocalフラグは、メソッド呼び出し、文字列を解析してToUniversalTime、返されたに変換するDateTime値を UTC にを設定し、KindプロパティをDateTimeKind.Utcします。If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. 場合sUTC で表すことを示す場合、またはsタイム ゾーン情報は含まれませんが、stylesが含まれています、DateTimeStyles.AssumeUniversalフラグは、メソッド、文字列を解析して、返されたのタイム ゾーンの変換は行われませんDateTime値、およびセット、KindプロパティをDateTimeKind.Utcします。If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. その他のすべてのケースでは、フラグには影響はありません。In all other cases, the flag has no effect.
AllowInnerWhite 定義されていない、空白文字を指定しますformat任意の個々 の日付または時刻の要素の間に表示できます。Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite 定義されていない、空白文字を指定しますformatの先頭に表示できるsします。Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite 定義されていない、空白文字を指定しますformatの末尾に記述できるsします。Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces 指定しますs先頭、内部、および末尾の空白で定義されていない場合がありますformatします。Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal 場合を指定しますsのタイム ゾーン情報がない、現地時刻を表すと見なされます。Specifies that if s lacks any time zone information, it is assumed to represent a local time. しない限り、DateTimeStyles.AdjustToUniversalフラグが存在する、 Kind 、返されたプロパティDateTime値に設定されてDateTimeKind.Localします。Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal 指定された場合s任意のタイム ゾーン情報が不足しています utc と見なされます。Specifies that if s lacks any time zone information, it is assumed to represent UTC. しない限り、DateTimeStyles.AdjustToUniversalフラグが存在する、メソッドは、返された変換DateTime値を UTC から現地時刻とセットにそのKindプロパティをDateTimeKind.Localします。Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault 場合sの時刻に設定されている戻り値の日付の日付の情報がないDateTime.MinValue.Dateします。If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None sパラメーターは、既定値を使用して解析されます。The s parameter is parsed using default values. 空白以外に含まれているformatは許可されています。No white space other than that present in format is allowed. 場合s、返された日付、日付部分がないDateTime値は 1/1/0001 を設定します。If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. 場合sタイム ゾーンの情報が含まれていない、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Unspecifiedします。If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. タイム ゾーン情報が存在する場合s、時刻は現地時刻に変換し、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localします。If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind のタイム ゾーン情報を含む文字列への変換を防止しようとするDateTime値をそのKindプロパティに設定DateTimeKind.Localします。For strings that contain time zone information, tries to prevent the conversion to a DateTime value with its Kind property set to DateTimeKind.Local. 主に、このフラグには、ローカル時刻を UTC 時刻の変換ができないようにします。This flag primarily prevents the conversion of UTC times to local times.

Notes to Callers

.NET Framework 4.NET Framework 4TryParseExactメソッドを返します。false解析する文字列が、時間の部分と契約に含まれていない AM/PM 指定子を含む場合。 In the .NET Framework 4.NET Framework 4, the TryParseExact method returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. .NET Framework 3.5.NET Framework 3.5と以前のバージョン、AM/PM 指定子は無視されます。 In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

See Also

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

指定した書式の配列、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTime に変換します。 Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. 文字列形式の書式は、指定した書式の少なくとも 1 つと完全に一致する必要があります。 The format of the string representation must match at least one of the specified formats exactly. このメソッドは、変換に成功したかどうかを示す値を返します。 The method returns a value that indicates whether the conversion succeeded.

public:
 static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles *  -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

パラメーター

s
String String String String

変換する日時を含む文字列。 A string that contains a date and time to convert.

formats
String[]

s の許可された形式の配列。 An array of allowable formats of s.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。 An object that supplies culture-specific format information about s.

style
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

s に許可されている書式を示す列挙値のビットごとの組み合わせ。 A bitwise combination of enumeration values that indicates the permitted format of s. 通常指定する値は、None です。 A typical value to specify is None.

result
DateTime DateTime DateTime DateTime

変換に成功した場合は、s に格納された日時と等しい DateTime 値が格納されます。変換に失敗した場合は MinValue が格納されます。 When this method returns, contains the DateTime value equivalent to the date and time contained in s, if the conversion succeeded, or MinValue if the conversion failed. s または formatnull の場合、s または format の要素が空の文字列の場合、あるいは、s の書式が format に指定されたいずれの書式パターンとも一致しない場合、変換は失敗します。 The conversion fails if s or formats is null, s or an element of formats is an empty string, or the format of s is not exactly as specified by at least one of the format patterns in formats. このパラメーターは初期化せずに渡されます。 This parameter is passed uninitialized.

Returns

true パラメーターが正常に変換された場合は s。それ以外の場合は false true if the s parameter was converted successfully; otherwise, false.

Exceptions

styles は有効な DateTimeStyles 値ではありません。 styles is not a valid DateTimeStyles value. - または - -or- stylesDateTimeStyles 値の正しくない組み合わせが含まれています (たとえば、AssumeLocalAssumeUniversal の両方などです)。 styles contains an invalid combination of DateTimeStyles values (for example, both AssumeLocal and AssumeUniversal).

Examples

次の例では、DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)メソッドを使用できる形式の数値の文字列を正常に解析できることを確認します。The following example uses the DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) method to ensure that a string in a number of possible formats can be successfully parsed .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", 
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", 
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", 
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm", 
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", 
                              "5/1/2009 6:32:00", "05/01/2009 06:32", 
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}; 
      DateTime dateValue;
      
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParseExact(dateString, formats, 
                                    new CultureInfo("en-US"), 
                                    DateTimeStyles.None, 
                                    out dateValue))
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}
      Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
                                     "5/1/2009 6:32:00", "05/01/2009 06:32", _
                                     "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"} 

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         If Date.TryParseExact(dateString, formats, _
                               New CultureInfo("en-US"), _
                               DateTimeStyles.None, _
                               dateValue) Then
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End If                                               
      Next
   End Sub   
End Module
' The example displays the following output:
'       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
'       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.

Remarks

DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)メソッドに割り当てられているパターンのいずれかに一致する日付の文字列表現を解析し、formatsパラメーター。The DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method parses the string representation of a date that matches any one of the patterns assigned to the formats parameter. ようになります、DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)メソッドを除く、TryParseExactメソッドは、変換が失敗した場合に例外をスローしません。It is like the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method, except the TryParseExact method does not throw an exception if the conversion fails.

sパラメーターには、解析するには、日付と時刻が含まれています。The s parameter contains the date and time to parse. 場合、sパラメーターに時刻のみが含まれ、日なししない限り、現在の日付が使用される、styleパラメーターが含まれる、DateTimeStyles.NoCurrentDateDefaultフラグ場合、既定の日付 (DateTime.Date.MinValue) 使用されます。If the s parameter contains only a time and no date, the current date is used unless the style parameter includes the DateTimeStyles.NoCurrentDateDefault flag, in which case the default date (DateTime.Date.MinValue) is used. 場合、sパラメーターが含まれるは、日付のみといいえ時、午前 0 時 (00: 00:00) が使用されます。If the s parameter contains only a date and no time, midnight (00:00:00) is used. styleパラメーターも決定かどうか、sパラメーターは、先頭を含めることができます、内部、または末尾の空白文字で書式指定文字列のいずれかで許可されているもの以外のformatsします。The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters other than those permitted by one of the format strings in formats.

場合sタイム ゾーンの情報が含まれていない、 Kind 、返されたプロパティDateTimeオブジェクトがDateTimeKind.Unspecifiedします。If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. 使用してこの動作を変更することができます、DateTimeStyles.AssumeLocalフラグ、返された、DateTimeKindプロパティはDateTimeKind.Local、またはを使用して、DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversalフラグ、返された、DateTimeKindプロパティはDateTimeKind.Utcします。This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. S にタイム ゾーン情報が含まれている場合、時刻が現地時刻に変換されます、必要に応じて、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localします。If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. 使用してこの動作を変更することができます、DateTimeStyles.RoundtripKindせず、現地時刻を世界協定時刻 (UTC) に変換を設定するフラグ、KindプロパティをDateTimeKind.Utcします。This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and set the Kind property to DateTimeKind.Utc.

formatsパラメーターには、パターンの配列が含まれています。 その 1 つs解析操作が成功する場合に正確に一致する必要があります。The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. 内のパターン、formatsから 1 つまたは複数のカスタム書式指定子で構成されているパラメーター、カスタム Date and Time Format Stringsテーブル、またはから定義済みのパターンを識別する 1 つの標準書式指定子、Standard Date and Time Format Stringsテーブル。The patterns in the formats parameter consist of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

カスタム書式パターンでは日付または時刻の区切り記号を使用しない場合は、インバリアント カルチャを使用して、providerパラメーターおよび各カスタムの最も長い形式の書式指定子。If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. たとえば、パターンに時間を指定する場合は、"H"狭義の形式ではなくより多くのフォーム"HH"を指定します。For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

特定の日付と時刻のシンボルとで使用される特定の言語で曜日の名前) などの文字列sによって定義されます、providerパラメーターの正確な形式はs場合formatは標準的な形式です。指定子の文字列。The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. providerパラメーターには、次のいずれかを指定できます。The provider parameter can be any of the following:

場合providernullCultureInfo現在のカルチャに対応するオブジェクトを使用します。If provider is null, the CultureInfo object that corresponds to the current culture is used.

stylesパラメーターには 1 つまたは複数のメンバーが含まれています、DateTimeStylesかどうかと、空白文字で定義されていないかを決定する列挙体formatに表示できるs解析操作の正確な動作を制御します。The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. 次の表をそれぞれどのように説明のメンバー、DateTimeStyles列挙型の運用に与える影響、TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)メソッド。The following table describes how each member of the DateTimeStyles enumeration affects the operation of the TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) method.

DateTimeStyles メンバーDateTimeStyles member 説明Description
AdjustToUniversal 解析sと、必要に応じて、UTC に変換します。Parses s and, if necessary, converts it to UTC. 場合s、タイム ゾーン オフセットが含まれて 場合sタイム ゾーン情報が含まれていないが、stylesが含まれています、DateTimeStyles.AssumeLocalフラグは、メソッド呼び出し、文字列を解析してToUniversalTime、返されたに変換するDateTime値を UTC にを設定し、KindプロパティをDateTimeKind.Utcします。If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc. 場合sUTC で表すことを示す場合、またはsタイム ゾーン情報は含まれませんが、stylesが含まれています、DateTimeStyles.AssumeUniversalフラグは、メソッド、文字列を解析して、返されたのタイム ゾーンの変換は行われませんDateTime値、およびセット、KindプロパティをDateTimeKind.Utcします。If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc. その他のすべてのケースでは、フラグには影響はありません。In all other cases, the flag has no effect.
AllowInnerWhite 定義されていない、空白文字を指定しますformat任意の個々 の日付または時刻の要素の間に表示できます。Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite 定義されていない、空白文字を指定しますformatの先頭に表示できるsします。Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite 定義されていない、空白文字を指定しますformatの末尾に記述できるsします。Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces 指定しますs先頭、内部、および末尾の空白で定義されていない場合がありますformatします。Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal 場合を指定しますsのタイム ゾーン情報がない、現地時刻を表すと見なされます。Specifies that if s lacks any time zone information, it is assumed to represent a local time. しない限り、DateTimeStyles.AdjustToUniversalフラグが存在する、 Kind 、返されたプロパティDateTime値に設定されてDateTimeKind.Localします。Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal 指定された場合s任意のタイム ゾーン情報が不足しています utc と見なされます。Specifies that if s lacks any time zone information, it is assumed to represent UTC. しない限り、DateTimeStyles.AdjustToUniversalフラグが存在する、メソッドは、返された変換DateTime値を UTC から現地時刻とセットにそのKindプロパティをDateTimeKind.Localします。Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault 場合sの時刻に設定されている戻り値の日付の日付の情報がないDateTime.MinValue.Dateします。If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None sパラメーターは、既定値を使用して解析されます。The s parameter is parsed using default values. 空白以外に含まれているformatは許可されています。No white space other than that present in format is allowed. 場合s、返された日付、日付部分がないDateTime値は 1/1/0001 を設定します。If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. 場合sタイム ゾーンの情報が含まれていない、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Unspecifiedします。If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. タイム ゾーン情報が存在する場合s、時刻は現地時刻に変換し、 Kind 、返されたプロパティDateTimeにオブジェクトが設定されているDateTimeKind.Localします。If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind のタイム ゾーン情報を含む文字列への変換を防止しようとするDateTime値をそのKindプロパティに設定DateTimeKind.Localします。For strings that contain time zone information, tries to prevent the conversion to a DateTime value with its Kind property set to DateTimeKind.Local. 主に、このフラグには、ローカル時刻を UTC 時刻の変換ができないようにします。This flag primarily prevents the conversion of UTC times to local times.

Notes to Callers

.NET Framework 4.NET Framework 4TryParseExactメソッドを返します。false解析する文字列が、時間の部分と契約に含まれていない AM/PM 指定子を含む場合。 In the .NET Framework 4.NET Framework 4, the TryParseExact method returns false if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. .NET Framework 3.5.NET Framework 3.5と以前のバージョン、AM/PM 指定子は無視されます。 In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

See Also

Applies to