DateTimeOffset.ParseExact DateTimeOffset.ParseExact DateTimeOffset.ParseExact DateTimeOffset.ParseExact Method

定義

指定した文字列形式の日付と時刻を等価の DateTimeOffset の値に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent. 文字列形式の書式は、指定した書式と完全に一致する必要があります。The format of the string representation must match a specified format exactly.

オーバーロード

ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。The format of the string representation must match one of the specified formats exactly.

ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. 文字列形式の書式は、指定した書式と完全に一致する必要があります。The format of the string representation must match the specified format exactly.

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻を表す文字範囲を等価の DateTimeOffset に変換します。Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. 日付と時刻を表すための書式は、指定した書式と完全に一致する必要があります。The format of the date and time representation must match the specified format exactly.

ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider)

指定した書式とカルチャ固有の書式情報を使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset の値に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. 文字列形式の書式は、指定した書式と完全に一致する必要があります。The format of the string representation must match the specified format exactly.

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

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の文字列表現を含む文字範囲を等価の DateTimeOffset に変換します。Converts a character span that contains the string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. 日付と時刻を表すための書式は、指定した書式のいずれかと完全に一致する必要があります。The format of the date and time representation must match one of the specified formats exactly.

ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles) ParseExact(String, String[], IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. 文字列形式の書式は、指定されたいずれかの書式と完全に一致する必要があります。The format of the string representation must match one of the specified formats exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact (string input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

パラメーター

input
String String String String

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

formats
String[]

input の有効な書式を定義する書式指定子の配列。An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

input で使用可能な書式を示す、列挙値のビットごとの組み合わせ。A bitwise combination of enumeration values that indicates the permitted format of input.

戻り値

formatsformatProvider、および styles の各パラメーターで指定された書式に従って表記された、input パラメーターに含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time that is contained in the input parameter, as specified by the formats, formatProvider, and styles parameters.

例外

オフセットが -14 時間より小さいか、14 時間を超えています。The offset is greater than 14 hours or less than -14 hours.

- または --or- サポートされていない値が styles に含まれています。styles includes an unsupported value.

または-or- 同時に使用できない DateTimeStyles 値が styles パラメーターに含まれています。The styles parameter contains DateTimeStyles values that cannot be used together.

input が空の文字列 ("") です。input is an empty string ("").

- または --or- input に日付と時刻の有効な文字列形式が含まれていません。input does not contain a valid string representation of a date and time.

- または --or- formats の要素に有効な書式指定子が含まれていません。No element of formats contains a valid format specifier.

- または --or- input の時間の部分と AM/PM 指定子が一致していません。The hour component and the AM/PM designator in input do not agree.

次の例では、日付と時刻の文字列形式とオフセット値の複数の入力形式を定義し、ユーザーが入力した文字列をDateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)メソッドに渡します。The following example defines multiple input formats for the string representation of a date and time and offset value, and then passes the string that is entered by the user to the DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method.

TextReader conIn = Console.In;
TextWriter conOut = Console.Out;
int tries = 0;
string input = String.Empty;
string[] formats = new string[] {@"@M/dd/yyyy HH:m zzz", @"MM/dd/yyyy HH:m zzz", 
                                 @"M/d/yyyy HH:m zzz", @"MM/d/yyyy HH:m zzz", 
                                 @"M/dd/yy HH:m zzz", @"MM/dd/yy HH:m zzz", 
                                 @"M/d/yy HH:m zzz", @"MM/d/yy HH:m zzz",                             
                                 @"M/dd/yyyy H:m zzz", @"MM/dd/yyyy H:m zzz", 
                                 @"M/d/yyyy H:m zzz", @"MM/d/yyyy H:m zzz", 
                                 @"M/dd/yy H:m zzz", @"MM/dd/yy H:m zzz", 
                                 @"M/d/yy H:m zzz", @"MM/d/yy H:m zzz",                               
                                 @"M/dd/yyyy HH:mm zzz", @"MM/dd/yyyy HH:mm zzz", 
                                 @"M/d/yyyy HH:mm zzz", @"MM/d/yyyy HH:mm zzz", 
                                 @"M/dd/yy HH:mm zzz", @"MM/dd/yy HH:mm zzz", 
                                 @"M/d/yy HH:mm zzz", @"MM/d/yy HH:mm zzz",                                 
                                 @"M/dd/yyyy H:mm zzz", @"MM/dd/yyyy H:mm zzz", 
                                 @"M/d/yyyy H:mm zzz", @"MM/d/yyyy H:mm zzz", 
                                 @"M/dd/yy H:mm zzz", @"MM/dd/yy H:mm zzz", 
                                 @"M/d/yy H:mm zzz", @"MM/d/yy H:mm zzz"};
IFormatProvider provider = CultureInfo.InvariantCulture.DateTimeFormat;
DateTimeOffset result = new DateTimeOffset();

do { 
   conOut.WriteLine("Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),");
   conOut.Write("Then press Enter: ");
   input = conIn.ReadLine();
   conOut.WriteLine();
   try
   {
      result = DateTimeOffset.ParseExact(input, formats, provider, 
                                         DateTimeStyles.AllowWhiteSpaces);
      break;
   }
   catch (FormatException)
   {
      Console.WriteLine("Unable to parse {0}.", input);      
      tries++;
   }
} while (tries < 3);
if (tries >= 3)
   Console.WriteLine("Exiting application without parsing {0}", input);
else
   Console.WriteLine("{0} was converted to {1}", input, result.ToString());                                                     
// Some successful sample interactions with the user might appear as follows:
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/08/2007 6:54 -6:00
//    
//    12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00         
//    
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/8/2007 06:54 -06:00
//    
//    12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
//    
//    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
//    Then press Enter: 12/5/07 6:54 -6:00
//    
//    12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00 
Dim conIn As TextReader = Console.In
Dim conOut As TextWriter = Console.Out
Dim tries As Integer = 0
Dim input As String = String.Empty
Dim formats() As String = {"M/dd/yyyy HH:m zzz", "MM/dd/yyyy HH:m zzz", _
                           "M/d/yyyy HH:m zzz", "MM/d/yyyy HH:m zzz", _
                           "M/dd/yy HH:m zzz", "MM/dd/yy HH:m zzz", _
                           "M/d/yy HH:m zzz", "MM/d/yy HH:m zzz", _                                 
                           "M/dd/yyyy H:m zzz", "MM/dd/yyyy H:m zzz", _
                           "M/d/yyyy H:m zzz", "MM/d/yyyy H:m zzz", _
                           "M/dd/yy H:m zzz", "MM/dd/yy H:m zzz", _
                           "M/d/yy H:m zzz", "MM/d/yy H:m zzz", _                               
                           "M/dd/yyyy HH:mm zzz", "MM/dd/yyyy HH:mm zzz", _
                           "M/d/yyyy HH:mm zzz", "MM/d/yyyy HH:mm zzz", _
                           "M/dd/yy HH:mm zzz", "MM/dd/yy HH:mm zzz", _
                           "M/d/yy HH:mm zzz", "MM/d/yy HH:mm zzz", _                                 
                           "M/dd/yyyy H:mm zzz", "MM/dd/yyyy H:mm zzz", _
                           "M/d/yyyy H:mm zzz", "MM/d/yyyy H:mm zzz", _
                           "M/dd/yy H:mm zzz", "MM/dd/yy H:mm zzz", _
                           "M/d/yy H:mm zzz", "MM/d/yy H:mm zzz"}   
Dim provider As IFormatProvider = CultureInfo.InvariantCulture.DateTimeFormat
Dim result As DateTimeOffset

Do 
   conOut.WriteLine("Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),")
   conOut.Write("Then press Enter: ")
   input = conIn.ReadLine()
   conOut.WriteLine() 
   Try
      result = DateTimeOffset.ParseExact(input, formats, provider, _
                                         DateTimeStyles.AllowWhiteSpaces)
      Exit Do
   Catch e As FormatException
      Console.WriteLine("Unable to parse {0}.", input)      
      tries += 1
   End Try
Loop While tries < 3
If tries >= 3 Then
   Console.WriteLine("Exiting application without parsing {0}", input)
Else
   Console.WriteLine("{0} was converted to {1}", input, result.ToString())                                                     
End If 
' Some successful sample interactions with the user might appear as follows:
'    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
'    Then press Enter: 12/08/2007 6:54 -6:00
'    
'    12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00         
'    
'    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
'    Then press Enter: 12/8/2007 06:54 -06:00
'    
'    12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
'    
'    Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
'    Then press Enter: 12/5/07 6:54 -6:00
'    
'    12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00 

注釈

メソッドDateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)は、 formatsパラメーターに割り当てられているパターンのいずれかと一致する日付の文字列形式を解析します。The DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method parses the string representation of a date that matches any one of the patterns assigned to the formats parameter. 文字列が、 stylesパラメーターで定義されているいずれかのバリエーションと一致しない場合、メソッドはをFormatExceptionスローします。 inputIf the input string does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. 複数の書式input設定パターンとの比較以外に、このオーバーロードはDateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles)メソッドと同じように動作します。Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

パラメーターは、1つの標準書式指定子またはinputパラメーターの使用可能なパターンを定義する1つ以上のカスタム書式指定子のいずれかを要素に含む文字列配列です。 formatsThe formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of the input parameter. メソッドが呼び出された場合input 、は、これらのパターンのいずれかと一致する必要があります。When the method is called, input must match one of these patterns. 有効な書式指定コードの詳細については、「標準の日付と時刻の書式指定文字列」および「カスタム日時書式指定文字列」を参照してください。For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. formatsの一致する要素にz、オフセットzzが存在する必要があることを示すために、、またinputzzzカスタム書式指定子が含まれている場合、そのオフセットには負の符号または正の符号を含める必要があります。If the matched element in formats includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. 符号が指定されていない場合、 FormatExceptionメソッドはをスローします。If the sign is missing, the method throws a FormatException.

重要

このオーバーロードのパラメーターを使用して複数の形式を指定すると、日付と時刻を入力したときの多くのユーザーエクスペリエンスのストレスを軽減するのに役立ちます。 formatsUsing the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. 特に、複数の入力パターンを定義する機能により、アプリケーションでは、月、日、時間、分、秒の先頭にゼロを含めるか、または指定しない日付と時刻の表現を処理することができます。In particular, the ability to define multiple input patterns enables an application to handle date and time representations that can either include or lack leading zeros in months, days, hours, minutes, and seconds. この例では、この例を示します。The example provides an illustration of this.

formats一致する要素が、時刻inputではなく日付を含むことを要求するDateTimeOffset場合、結果のオブジェクトには午前0時 (0:00:00) の時間が割り当てられます。If the matched element in formats requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). 内のformats一致する要素が時刻inputを含んでいる必要がありますが、 DateTimeOffset日付は含まれていない場合、結果のオブジェクトにはローカルシステムの現在の日付が割り当てられます。If the matched element in formats requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. 内のformats一致する要素がオフセットを含むinputを必要としない場合、結果とDateTimeOffsetして得られるオブジェクトのstylesオフセットは、パラメーターの値によって異なります。If the matched element in formats does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. stylesAssumeLocal含まれている場合は、ローカルタイムDateTimeOffsetゾーンのオフセットがオブジェクトに割り当てられます。If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. stylesAssumeUniversal含まれている場合は、世界協定時刻 (UTC) のオフセットまたは + DateTimeOffset 00:00 がオブジェクトに割り当てられます。If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. どちらの値も指定しない場合は、ローカルタイムゾーンのオフセットが使用されます。If neither value is specified, the offset of the local time zone is used.

input使用される特定の日付と時刻のシンボルおよび文字列はformatProvider 、パラメーターによって定義されます。The particular date and time symbols and strings used in input are defined by the formatProvider parameter. inputformats一致する要素が標準書式指定子の文字列である場合も、の正確な形式に当てはまります。The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be either of the following:

CultureInfoformatprovider の場合は、現在のカルチャに対応するオブジェクトが使用されます。nullIf formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

stylesパラメーターでは、入力文字列で空白文字を許可するかどうかを定義し、明示的なオフセットコンポーネントのない文字列を解析し、解析操作の一部として UTC 変換をサポートするかどうかを指定します。The styles parameter defines whether white space is permitted in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. を除きDateTimeStyles NoCurrentDateDefault、列挙体のすべてのメンバーがサポートされます。All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. 次の表に、サポートされている各メンバーの影響を示します。The following table lists the effect of each supported member.

DateTimeStyles のメンバーDateTimeStyles member 動作Behavior
AdjustToUniversal input解析し、必要に応じて UTC に変換します。Parses input and, if necessary, converts it to UTC. これは、文字列を解析し、返されたDateTimeOffset.ToUniversalTime DateTimeOffsetオブジェクトのメソッドを呼び出すことと同じです。It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal 内のformats一致する要素がオフセット値をinput含むを必要としない場合DateTimeOffset 、返されるオブジェクトにはローカルタイムゾーンのオフセットが与えられます。If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. これが既定値です。This is the default value.
AssumeUniversal 内のformats一致する要素がオフセット値をinput含むを必要としない場合DateTimeOffset 、返されたオブジェクトには UTC オフセット (+ 00:00) が与えられます。If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite input指定されてformatいない内部の空白を含めることができます。Allows input to include inner white space not specified by format. 余分な空白は、日付と時刻のコンポーネントと個々のコンポーネント (オフセットを除く) の間で使用できます。文字列の解析時には無視されます。Extra white space can appear between date and time components and within individual components (except the offset), and is ignored when parsing the string.
AllowLeadingWhite inputよって指定されてformatsいない先頭のスペースを含めることができます。Allows input to include leading spaces not specified by formats. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowTrailingWhite inputよって指定されてformatsいない末尾のスペースを含めることができます。Allows input to include trailing spaces not specified by formats. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowWhiteSpaces inputよって指定されてformatsいない先頭、末尾、および内部スペースを含めることができます。Allows input to include leading, trailing, and inner spaces not specified by formats. 内のformats一致する要素で指定されていない余分な空白文字はすべて、文字列の解析時に無視されます。All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None では、追加のinput空白を使用できないことを示します。Indicates that additional white space is not permitted in input. 一致と見なされるためには、の特定のformats要素で指定されているとおりに空白文字を使用する必要があります。White space must appear exactly as specified in a particular element of formats for a match to occur. これが既定の動作です。This is the default behavior.
RoundtripKind 構造体にDateTimeOffset Kindプロパティが含まれていないため、効果はありません。Has no effect because the DateTimeOffset structure does not include a Kind property.

注意 (呼び出し元)

では、解析対象の文字列FormatExceptionに1時間の部分と、アグリーメントに含まれていない AM/PM 指定子が含まれている場合、メソッドはをスローします。ParseExact .NET Framework 4.NET Framework 4In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException 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.

こちらもご覧ください

ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles) ParseExact(String, String, IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. 文字列形式の書式は、指定した書式と完全に一致する必要があります。The format of the string representation must match the specified format exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact (string input, string format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

パラメーター

input
String String String String

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

format
String String String String

input の有効な書式を定義する書式指定子。A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

input で使用可能な書式を示す、列挙値のビットごとの組み合わせ。A bitwise combination of enumeration values that indicates the permitted format of input.

戻り値

formatformatProvider、および styles の各パラメーターで指定された書式に従って表記された、input パラメーターに含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time that is contained in the input parameter, as specified by the format, formatProvider, and styles parameters.

例外

オフセットが -14 時間より小さいか、14 時間を超えています。The offset is greater than 14 hours or less than -14 hours.

- または --or- サポートされていない値が styles パラメーターに含まれています。The styles parameter includes an unsupported value.

- または --or- 同時に使用できない DateTimeStyles 値が styles パラメーターに含まれています。The styles parameter contains DateTimeStyles values that cannot be used together.

inputnull です。input is null.

- または --or- formatnullです。format is null.

input が空の文字列 ("") です。input is an empty string ("").

または-or- input に日付と時刻の有効な文字列形式が含まれていません。input does not contain a valid string representation of a date and time.

- または --or- format が空の文字列です。format is an empty string.

- または --or- input の時間の部分と AM/PM 指定子が一致していません。The hour component and the AM/PM designator in input do not agree.

次の例ではDateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) 、メソッドを標準およびカスタムの書式指定子、インバリアントカルチャDateTimeStyles 、およびさまざまな値と共に使用して、複数の日付と時刻の文字列を解析します。The following example uses the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method with standard and custom format specifiers, the invariant culture, and various DateTimeStyles values to parse several date and time strings.

string dateString, format;  
DateTimeOffset result;
CultureInfo provider = CultureInfo.InvariantCulture;

// Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008";
format = "d";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AssumeUniversal);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("'{0}' is not in the correct format.", dateString);
} 

// Parse date-only value with leading white space.
// Should throw a FormatException because only trailing white space is  
// specified in method call.
dateString = " 06/15/2008";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowTrailingWhite);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   Console.WriteLine("'{0}' is not in the correct format.", dateString);
} 

// Parse date and time value, and allow all white space.
dateString = " 06/15/   2008  15:15    -05:00";
format = "MM/dd/yyyy H:mm zzz";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowWhiteSpaces);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   Console.WriteLine("'{0}' is not in the correct format.", dateString);
} 

// Parse date and time and convert to UTC.
dateString = "  06/15/2008 15:15:30 -05:00";
format = "MM/dd/yyyy H:mm:ss zzz"; 
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider, 
                                      DateTimeStyles.AllowWhiteSpaces |
                                      DateTimeStyles.AdjustToUniversal);
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("'{0}' is not in the correct format.", dateString);
} 
// The example displays the following output:
//    '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
//    ' 06/15/2008' is not in the correct format.
//    ' 06/15/   2008  15:15    -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
//    '  06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.
Dim dateString, format As String  
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture

' Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008"
format = "d"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AssumeUniversal)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' Parse date-only value with leading white space.
' Should throw a FormatException because only trailing white space is  
' specified in method call.
dateString = " 06/15/2008"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowTrailingWhite)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' Parse date and time value, and allow all white space.
dateString = " 06/15/   2008  15:15    -05:00"
format = "MM/dd/yyyy H:mm zzz"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowWhiteSpaces)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 

' Parse date and time and convert to UTC.
dateString = "  06/15/2008 15:15:30 -05:00"   
format = "MM/dd/yyyy H:mm:ss zzz"       
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider, _
                                      DateTimeStyles.AllowWhiteSpaces Or _
                                      DateTimeStyles.AdjustToUniversal)
   Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("'{0}' is not in the correct format.", dateString)
End Try 
' The example displays the following output:
'    '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
'    ' 06/15/2008' is not in the correct format.
'    ' 06/15/   2008  15:15    -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
'    '  06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.

次のDateTimeStyles例では、さまざまな値を使用して、 ISO 8601に準拠していると想定される文字列の配列を解析します。The following example uses a variety of DateTimeStyles values to parse an array of strings that are expected to conform to ISO 8601. 例の出力が示すように、適切な形式の文字列は、次の場合に解析できません。As the output from the example shows, strings that are in the proper format fail to parse if:

  • これらの関数にDateTimeStyles DateTimeStyles.AllowWhiteSpacesは空白が含まれており、適切なフラグ (メソッドの呼び出しでが指定されていないなど) が含まれています。they contain white space, and an appropriate DateTimeStyles flag (such as DateTimeStyles.AllowWhiteSpaces has not been supplied in the method call.

  • 範囲外の日付と時刻の要素が含まれています。they contain date and time elements that are out of range.

UTC オフセットを指定しない文字列は、メソッド呼び出しでDateTimeStyles.AssumeUniversalフラグが指定されていない限り、ローカルタイムゾーン (この場合は-07:00) のオフセットを持つと見なされます。Strings that do not specify a UTC offset are assumed to have the offset of the local time zone (in this case, -07:00) unless the DateTimeStyles.AssumeUniversal flag is supplied in the method call. その場合は、世界協定時刻であると見なされます。In that case, they are assumed to be Universal Coordinated Time.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = { "2018-08-18T12:45:16.0000000Z",
                               "2018/08/18T12:45:16.0000000Z",
                               "2018-18-08T12:45:16.0000000Z",
                               "2018-08-18T12:45:16.0000000",                               
                               " 2018-08-18T12:45:16.0000000Z ",
                               "2018-08-18T12:45:16.0000000+02:00",
                               "2018-08-18T12:45:16.0000000-07:00" }; 
      
      ParseWithISO8601(dateStrings, DateTimeStyles.None);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal);
      Console.WriteLine("\n-----\n");
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal);   }

   private static void ParseWithISO8601(string[] dateStrings, DateTimeStyles styles)
   {   
      Console.WriteLine($"Parsing with {styles}:");
      foreach (var dateString in dateStrings)
      {
         try {
            var date = DateTimeOffset.ParseExact(dateString, "O", null, styles);
            Console.WriteLine($"   {dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
         }
         catch (FormatException)
         {
            Console.WriteLine($"   FormatException: Unable to convert '{dateString}'");
         }   
      } 
   }
}
// The example displays the following output:
//      Parsing with None:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AllowWhiteSpaces:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         2018-08-18T12:45:16.0000000Z       --> 2018-08-18 12:45:16 +00:00
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AdjustToUniversal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 19:45:16 +00:00
//         FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 10:45:16 +00:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 19:45:16 +00:00
//
//      -----
//
//      Parsing with AssumeLocal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 -07:00
//         FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
//
//      -----
//
//      Parsing with AssumeUniversal:
//         2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//         FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//         2018-08-18T12:45:16.0000000         --> 2018-08-18 12:45:16 +00:00
//         FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//         2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//         2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() = { "2018-08-18T12:45:16.0000000Z",
                            "2018/08/18T12:45:16.0000000Z",
                            "2018-18-08T12:45:16.0000000Z",
                            "2018-08-18T12:45:16.0000000",                               
                            " 2018-08-18T12:45:16.0000000Z ",
                            "2018-08-18T12:45:16.0000000+02:00",
                            "2018-08-18T12:45:16.0000000-07:00" } 
      
      ParseWithISO8601(dateStrings, DateTimeStyles.None)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal)
      Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
      ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal)   
   End Sub

   Private Sub ParseWithISO8601(dateStrings() As String, styles As DateTimeStyles)
      Console.WriteLine($"Parsing with {styles}:")
      For Each dateStr In dateStrings
         Try 
            Dim dat = DateTimeOffset.ParseExact(dateString, "O", Nothing, styles)
            Console.WriteLine($"   {dateString,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
         catch e As FormatException
            Console.WriteLine($"   FormatException: Unable to convert '{dateString}'")
         End Try   
      Next 
   End Sub
End Module
' The example displays the following output:
'      Parsing with None:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AllowWhiteSpaces:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AdjustToUniversal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AssumeLocal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'
'      -----
'
'      Parsing with AssumeUniversal:
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'
'         FormatException: Unable to convert '07-30-2018'

注釈

メソッドDateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles)は、日付の文字列形式を解析します。これは、 formatパラメーターで定義された形式である必要があります。The DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method parses the string representation of a date, which must be in the format defined by the format parameter. また、日付と時刻<の文字列形式<の日付 >、 <時刻 >、およびオフセット > 要素をでformat指定された順序で表示する必要があります。It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. 文字列がパラメーター formatのパターンと一致しない場合、 stylesパラメーターで定義されたバリエーションがあると、メソッドはFormatExceptionをスローします。 inputIf the input string does not match the pattern of the format parameter, with any variations defined by the styles parameter, the method throws a FormatException. これに対してDateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) 、メソッドは、書式プロバイダーのDateTimeFormatInfoオブジェクトによって認識される形式のいずれかで、日付の文字列形式を解析します。In contrast, the DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parseでは、 <日付と時刻<の文字列形式の<日付 >、時刻 >、およびオフセット > 要素を任意の順序で表示することもできます。Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

パラメーターは、1つの標準書式指定子、またはinputパラメーターに必要なパターンを定義する1つ以上のカスタム書式指定子のいずれかを含む文字列です。 formatThe format parameter is a string that contains either a single standard format specifier or one or more custom format specifiers that define the required pattern of the input parameter. 有効な書式指定コードの詳細については、「標準の日付と時刻の書式指定文字列」および「カスタム日時書式指定文字列」を参照してください。For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. format z zz、オフセットが存在するzzz必要があることを示すために、、またはカスタム書式指定子が含まれる場合、そのオフセットには負の符号または正の符号を含める必要があります。 inputIf format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. 符号が指定されていない場合、 FormatExceptionメソッドはをスローします。If the sign is missing, the method throws a FormatException.

format時刻でinputはなく日付を含むことを要求したDateTimeOffset場合、結果として生成されるオブジェクトには午前0時 (0:00:00) の時間が割り当てられます。If format requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). format時刻をinput含み、日付が含まれていないことDateTimeOffsetを要求する場合、結果として得られるオブジェクトには、ローカルシステムの現在の日付が割り当てられます。If format requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. format DateTimeOffset stylesオフセットを含める必要がない場合、結果として得られるオブジェクトのオフセットは、パラメーターの値によって異なります。 inputIf format does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. stylesAssumeLocal含まれている場合は、ローカルタイムDateTimeOffsetゾーンのオフセットがオブジェクトに割り当てられます。If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. stylesAssumeUniversal含まれている場合は、世界協定時刻 (UTC) のオフセットまたは + DateTimeOffset 00:00 がオブジェクトに割り当てられます。If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. どちらの値も指定しない場合は、ローカルタイムゾーンのオフセットが使用されます。If neither value is specified, the offset of the local time zone is used.

input使用される特定の日付と時刻のシンボルおよび文字列はformatProvider 、パラメーターによって定義されます。The particular date and time symbols and strings used in input are defined by the formatProvider parameter. これは、が標準書式指定子のinput文字列でformatある場合に、の正確な形式にも当てはまります。The same is true for the precise format of input, if format is a standard format specifier string. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be either of the following:

CultureInfoformatprovider の場合は、現在のカルチャに対応するオブジェクトが使用されます。nullIf formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

stylesパラメーターでは、入力文字列で空白を使用できるかどうかを定義し、明示的なオフセットコンポーネントのない文字列を解析し、解析操作の一部として UTC 変換をサポートするかどうかを指定します。The styles parameter defines whether white space is allowed in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. を除きDateTimeStyles NoCurrentDateDefault、列挙体のすべてのメンバーがサポートされます。All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. 次の表に、サポートされている各メンバーの影響を示します。The following table lists the effect of each supported member.

DateTimeStyles のメンバーDateTimeStyles member 動作Behavior
AdjustToUniversal input解析し、必要に応じて UTC に変換します。Parses input and, if necessary, converts it to UTC. これは、文字列を解析し、返されたDateTimeOffset.ToUniversalTime DateTimeOffsetオブジェクトのメソッドを呼び出すことと同じです。It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal format DateTimeOffsetオフセット値を含める必要がない場合、返されるオブジェクトにはローカルタイムゾーンのオフセットが与えられます。 inputIf format does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. これが既定値です。This is the default value.
AssumeUniversal formatオフセット値が含まinputれている必要がない場合DateTimeOffsetは、返されたオブジェクトに UTC オフセット (+ 00:00) が与えられます。If format does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite input指定されてformatいない内部の空白を含めることができます。Allows input to include inner white space not specified by format. 余分な空白は、日付と時刻のコンポーネントと個々のコンポーネントの間に表示され、文字列の解析時には無視されます。Extra white space can appear between date and time components and within individual components, and is ignored when parsing the string.
AllowLeadingWhite inputよって指定されてformatいない先頭のスペースを含めることができます。Allows input to include leading spaces not specified by format. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowTrailingWhite inputよって指定されてformatいない末尾のスペースを含めることができます。Allows input to include trailing spaces not specified by format. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowWhiteSpaces inputよって指定されてformatいない先頭、末尾、および内部スペースを含めることができます。Allows input to include leading, trailing, and inner spaces not specified by format. format指定されていない余分な空白文字は、文字列の解析時に無視されます。All extra white-space characters not specified in format are ignored when parsing the string.
None では、追加のinput空白を使用できないことを示します。Indicates that additional white space is not permitted in input. 空白は、で指定したとおりformatに表示される必要があります。White space must appear exactly as specified in format. これが既定の動作です。This is the default behavior.
RoundtripKind 構造体にDateTimeOffset Kindプロパティが含まれていないため、効果はありません。Has no effect because the DateTimeOffset structure does not include a Kind property.

注意 (呼び出し元)

では、解析対象の文字列FormatExceptionに1時間の部分と、アグリーメントに含まれていない AM/PM 指定子が含まれている場合、メソッドはをスローします。ParseExact .NET Framework 4.NET Framework 4In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException 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.

こちらもご覧ください

ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻を表す文字範囲を等価の DateTimeOffset に変換します。Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. 日付と時刻を表すための書式は、指定した書式と完全に一致する必要があります。The format of the date and time representation must match the specified format exactly.

public static DateTimeOffset ParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

パラメーター

input
ReadOnlySpan<Char>

日付と時刻を表す文字範囲です。A character span that represents a date and time.

format
ReadOnlySpan<Char>

input の有効な書式を定義する書式指定子を含む文字範囲です。A character span that contains a format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

input で使用可能な書式を示す、列挙値のビットごとの組み合わせ。A bitwise combination of enumeration values that indicates the permitted format of input.

戻り値

formatformatProvider、および styles の各パラメーターで指定された書式に従って表記された、input パラメーターに含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time that is contained in the input parameter, as specified by the format, formatProvider, and styles parameters.

例外

オフセットが -14 時間より小さいか、14 時間を超えています。The offset is greater than 14 hours or less than -14 hours.
- または --or-
サポートされていない値が styles パラメーターに含まれています。The styles parameter includes an unsupported value.
- または --or-
同時に使用できない DateTimeStyles 値が styles パラメーターに含まれています。The styles parameter contains DateTimeStyles values that cannot be used together.

input は空の文字範囲です。input is an empty character span.
または、input に日付と時刻の有効な文字列形式が含まれていません。-or- input does not contain a valid string representation of a date and time.
または、format は空の文字範囲です。-or- format is an empty character span.
または-or-
input の時間の部分と AM/PM 指定子が一致していません。The hour component and the AM/PM designator in input do not agree.

注釈

このメソッドは、日付を表す文字範囲を解析します。これは、 formatパラメーターで定義された形式である必要があります。This method parses a character span that represents a date, which must be in the format defined by the format parameter. また、日付と時刻<の文字列形式<の日付 >、 <時刻 >、およびオフセット > 要素をでformat指定された順序で表示する必要があります。It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. input formatパターンと一致しない場合、メソッドはをFormatExceptionスローします。If input does not match the format pattern, the method throws a FormatException. これに対してDateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) 、メソッドは、書式プロバイダーのDateTimeFormatInfoオブジェクトによって認識される形式のいずれかで、日付の文字列形式を解析します。In contrast, the DateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parseでは、 <日付と時刻<の文字列形式の<日付 >、時刻 >、およびオフセット > 要素を任意の順序で表示することもできます。Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

パラメーターは、1文字inputの標準書式指定子またはパラメーターの必要な書式を定義する1つ以上のカスタム書式指定子のいずれかを含む文字範囲です。 formatThe format parameter is a character span that contains either a single-character standard format specifier or one or more custom format specifiers that define the required format of the input parameter. 有効な書式指定コードの詳細については、「標準の日付と時刻の書式指定文字列」および「カスタム日時書式指定文字列」を参照してください。For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. format z zz、オフセットが存在するzzz必要があることを示すために、、またはカスタム書式指定子が含まれる場合、そのオフセットには負の符号または正の符号を含める必要があります。 inputIf format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. 符号が指定されていない場合、 FormatExceptionメソッドはをスローします。If the sign is missing, the method throws a FormatException.

format時刻でinputはなく日付を含むことを要求したDateTimeOffset場合、結果として生成されるオブジェクトには午前0時 (0:00:00) の時間が割り当てられます。If format requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). format時刻をinput含み、日付が含まれていないことDateTimeOffsetを要求する場合、結果として得られるオブジェクトには、ローカルシステムの現在の日付が割り当てられます。If format requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. format DateTimeOffsetオフセットを含める必要がない場合、結果のオブジェクトにはローカルシステムのタイムゾーンオフセットが割り当てられます。 inputIf format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

input使用される特定の日付と時刻の記号および文字列はformatProvider 、が標準書式指定子の場合input format 、の正確な形式として、パラメーターによって定義されます。The particular date and time symbols and strings used in input are defined by the formatProvider parameter, as is the precise format of input if format is a standard format specifier. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be either of the following:

  • が解釈される基準となるinputカルチャを表すオブジェクト。CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. プロパティによって返されるオブジェクトはDateTimeFormatInfo 、のinputシンボルと書式設定を定義します。 DateTimeFormatThe DateTimeFormatInfo object returned by its DateTimeFormat property defines the symbols and formatting in input.

  • 日付と時刻のデータの形式を定義するオブジェクト。DateTimeFormatInfoA DateTimeFormatInfo object that defines the format of date and time data.

CultureInfoformatprovider の場合は、現在のカルチャに対応するオブジェクトが使用されます。nullIf formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider) ParseExact(String, String, IFormatProvider)

指定した書式とカルチャ固有の書式情報を使用して、指定した日付と時刻の文字列形式を等価の DateTimeOffset の値に変換します。Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. 文字列形式の書式は、指定した書式と完全に一致する必要があります。The format of the string representation must match the specified format exactly.

public:
 static DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider);
public static DateTimeOffset ParseExact (string input, string format, IFormatProvider formatProvider);
static member ParseExact : string * string * IFormatProvider -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider) As DateTimeOffset

パラメーター

input
String String String String

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

format
String String String String

input の有効な書式を定義する書式指定子。A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

戻り値

formatformatProvider で指定された input に格納される日時と等価のオブジェクト。An object that is equivalent to the date and time that is contained in input as specified by format and formatProvider.

例外

オフセットが -14 時間より小さいか、14 時間を超えています。The offset is greater than 14 hours or less than -14 hours.

inputnullです。input is null.

- または --or- formatnull です。format is null.

input が空の文字列 ("") です。input is an empty string ("").

または-or- input に日付と時刻の有効な文字列形式が含まれていません。input does not contain a valid string representation of a date and time.

- または --or- format が空の文字列です。format is an empty string.

- または --or- input の時間の部分と AM/PM 指定子が一致していません。The hour component and the AM/PM designator in input do not agree.

次の例DateTimeOffset.ParseExact(String, String, IFormatProvider)では、メソッドを標準およびカスタムの書式指定子とインバリアントカルチャを使用して、複数の日付と時刻の文字列を解析します。The following example uses the DateTimeOffset.ParseExact(String, String, IFormatProvider) method with standard and custom format specifiers and the invariant culture to parse several date and time strings.

string dateString, format;  
DateTimeOffset result;
CultureInfo provider = CultureInfo.InvariantCulture;

// Parse date-only value with invariant culture.
dateString = "06/15/2008";
format = "d";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}   
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of 
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 

// Parse date and time with offset without offset//s minutes.
// Should throw a FormatException because "zzz" specifier requires leading  
// zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06";
try
{
   result = DateTimeOffset.ParseExact(dateString, format, provider);
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException)
{
   Console.WriteLine("{0} is not in the correct format.", dateString);
} 
// The example displays the following output:
//    06/15/2008 converts to 6/15/2008 12:00:00 AM -07:00.
//    6/15/2008 is not in the correct format.
//    Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
//    Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.                     
Dim dateString, format As String  
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture

' Parse date-only value with invariant culture.
dateString = "06/15/2008"
format = "d"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date-only value without leading zero in month using "d" format.
' Should throw a FormatException because standard short date pattern of 
' invariant culture requires two-digit month.
dateString = "6/15/2008"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00"
format = "ddd dd MMM yyyy h:mm tt zzz"        
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 

' Parse date and time with offset without offset's minutes.
' Should throw a FormatException because "zzz" specifier requires leading  
' zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06"
Try
   result = DateTimeOffset.ParseExact(dateString, format, provider)
   Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
   Console.WriteLine("{0} is not in the correct format.", dateString)
End Try 
' The example displays the following output:
'    06/15/2008 converts to 6/15/2008 12:00:00 AM -07:00.
'    6/15/2008 is not in the correct format.
'    Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
'    Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.                     

次の例では、 ISO 8601に準拠していると想定される文字列の配列を解析します。The following example parses an array of strings that are expected to conform to ISO 8601. この例の出力に示すように、範囲外の日付と時刻の要素を含む文字列として、先頭または末尾のスペースを含む文字列は正常に解析できません。As the output from the example shows, strings with leading or trailing spaces fail to parse successfully, as do strings with date and time elements that are out of range.

using System;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = { "2018-08-18T12:45:16.0000000Z",
                               "2018/08/18T12:45:16.0000000Z",
                               "2018-18-08T12:45:16.0000000Z",
                               " 2018-08-18T12:45:16.0000000Z ",
                               "2018-08-18T12:45:16.0000000+02:00",
                               "2018-08-18T12:45:16.0000000-07:00" }; 
      
      foreach (var dateString in dateStrings)
      {
         try {
            var date = DateTimeOffset.ParseExact(dateString, "O", null);
            Console.WriteLine($"{dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
         }
         catch (FormatException)
         {
            Console.WriteLine($"FormatException: Unable to convert '{dateString}'");
         }   

      } 
   }
}
// The example displays the following output:
//      2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
//      FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
//      FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
//      FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
//      2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
//      2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00
Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = { "2018-08-18T12:45:16.0000000Z",
                                      "2018/08/18T12:45:16.0000000Z",
                                      "2018-18-08T12:45:16.0000000Z",
                                      " 2018-08-18T12:45:16.0000000Z ",
                                      "2018-08-18T12:45:16.0000000+02:00",
                                      "2018-08-18T12:45:16.0000000-07:00" } 
      
      For Each dateStr In dateStrings
         Try 
            Dim dat = DateTimeOffset.ParseExact(dateStr, "O", Nothing)
            Console.WriteLine($"{dateStr,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
         Catch  e As FormatException
            Console.WriteLine($"FormatException: Unable to convert '{dateStr}'")
         End Try   
      Next 
   End Sub
End Module
' The example displays the following output:
'      2018-08-18T12:45:16.0000000Z        --> 2018-08-18 12:45:16 +00:00
'      FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
'      FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
'      FormatException: Unable to convert ' 2018-08-18T12:45:16.0000000Z '
'      2018-08-18T12:45:16.0000000+02:00   --> 2018-08-18 12:45:16 +02:00
'      2018-08-18T12:45:16.0000000-07:00   --> 2018-08-18 12:45:16 -07:00

注釈

メソッドParseExact(String, String, IFormatProvider)は、日付の文字列形式を解析します。これは、 formatパラメーターで定義された形式である必要があります。The ParseExact(String, String, IFormatProvider) method parses the string representation of a date, which must be in the format defined by the format parameter. また、日付と時刻<の文字列形式<の日付 >、 <時刻 >、およびオフセット > 要素をでformat指定された順序で表示する必要があります。It also requires that the <Date>, <Time>, and <Offset> elements of the string representation of a date and time appear in the order specified by format. 文字列がこのformatパラメーターに一致しない場合、メソッドはをFormatExceptionスローします。 inputIf the input string does not match this format parameter, the method throws a FormatException. これに対してDateTimeOffset.Parse(String, IFormatProvider) 、メソッドは、書式プロバイダーのDateTimeFormatInfoオブジェクトによって認識される形式のいずれかで、日付の文字列形式を解析します。In contrast, the DateTimeOffset.Parse(String, IFormatProvider) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. Parseでは、 <日付と時刻<の文字列形式の<日付 >、時刻 >、およびオフセット > 要素を任意の順序で表示することもできます。Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

パラメーターは、1つの標準書式指定子、またはinputパラメーターに必要な形式を定義する1つ以上のカスタム書式指定子のいずれかを含む文字列です。 formatThe format parameter is a string that contains either a single standard format specifier or one or more custom format specifiers that define the required format of the input parameter. 有効な書式指定コードの詳細については、「標準の日付と時刻の書式指定文字列」および「カスタム日時書式指定文字列」を参照してください。For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. format z zz、オフセットが存在するzzz必要があることを示すために、、またはカスタム書式指定子が含まれる場合、そのオフセットには負の符号または正の符号を含める必要があります。 inputIf format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. 符号が指定されていない場合、 FormatExceptionメソッドはをスローします。If the sign is missing, the method throws a FormatException.

format時刻でinputはなく日付を含むことを要求したDateTimeOffset場合、結果として生成されるオブジェクトには午前0時 (0:00:00) の時間が割り当てられます。If format requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). format時刻をinput含み、日付が含まれていないことDateTimeOffsetを要求する場合、結果として得られるオブジェクトには、ローカルシステムの現在の日付が割り当てられます。If format requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. format DateTimeOffsetオフセットを含める必要がない場合、結果のオブジェクトにはローカルシステムのタイムゾーンオフセットが割り当てられます。 inputIf format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

input使用される特定の日付と時刻の記号および文字列は、が標準書式指定子の文字列inputformatある場合の正確な形式として、 formatProviderパラメーターによって定義されます。The particular date and time symbols and strings used in input are defined by the formatProvider parameter, as is the precise format of input if format is a standard format specifier string. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be either of the following:

  • が解釈される基準となるinputカルチャを表すオブジェクト。CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. プロパティによって返されるオブジェクトはDateTimeFormatInfo 、のinputシンボルと書式設定を定義します。 DateTimeFormatThe DateTimeFormatInfo object returned by its DateTimeFormat property defines the symbols and formatting in input.

  • 日付と時刻のデータの形式を定義するオブジェクト。DateTimeFormatInfoA DateTimeFormatInfo object that defines the format of date and time data.

CultureInfoformatprovider の場合は、現在のカルチャに対応するオブジェクトが使用されます。nullIf formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

注意 (呼び出し元)

では、解析対象の文字列FormatExceptionに1時間の部分と、アグリーメントに含まれていない AM/PM 指定子が含まれている場合、メソッドはをスローします。ParseExact .NET Framework 4.NET Framework 4In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException 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.

こちらもご覧ください

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

指定した書式、カルチャ固有の書式情報、およびスタイルを使用して、日付と時刻の文字列表現を含む文字範囲を等価の DateTimeOffset に変換します。Converts a character span that contains the string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. 日付と時刻を表すための書式は、指定した書式のいずれかと完全に一致する必要があります。The format of the date and time representation must match one of the specified formats exactly.

public static DateTimeOffset ParseExact (ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

パラメーター

input
ReadOnlySpan<Char>

変換する日付と時刻を含む文字範囲。A character span that contains a date and time to convert.

formats
String[]

input の有効な書式を定義する書式指定子の配列。An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

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

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

input で使用可能な書式を示す、列挙値のビットごとの組み合わせ。A bitwise combination of enumeration values that indicates the permitted format of input.

戻り値

formatsformatProvider、および styles の各パラメーターで指定された書式に従って表記された、input パラメーターに含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time that is contained in the input parameter, as specified by the formats, formatProvider, and styles parameters.

例外

オフセットが -14 時間より小さいか、14 時間を超えています。The offset is greater than 14 hours or less than -14 hours.
または、サポートされていない値が styles に含まれています。-or- styles includes an unsupported value.
または-or-
同時に使用できない DateTimeStyles 値が styles パラメーターに含まれています。The styles parameter contains DateTimeStyles values that cannot be used together.

input は空の文字範囲です。input is an empty character span.
または、input に日付と時刻の有効な文字列形式が含まれていません。-or- input does not contain a valid string representation of a date and time.
または-or-
formats の要素に有効な書式指定子が含まれていません。No element of formats contains a valid format specifier.
または-or-
input の時間の部分と AM/PM 指定子が一致していません。The hour component and the AM/PM designator in input do not agree.

注釈

このメソッドは、 formatsパラメーターに割り当てられているパターンのいずれかと一致する日付を表す文字範囲を解析します。This method parses a character span representing a date that matches any one of the patterns assigned to the formats parameter. inputstylesパラメーターで定義されているいずれかのバリエーションと一致しない場合、メソッドはをFormatExceptionスローします。If input does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. 複数の書式input設定パターンとの比較以外に、このオーバーロードはDateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)メソッドと同じように動作します。Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method.

パラメーターは、1つの標準書式指定子またはinputパラメーターの使用可能なパターンを定義する1つ以上のカスタム書式指定子のいずれかを要素に含む文字列配列です。 formatsThe formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of the input parameter. メソッドが呼び出された場合input 、は、これらのパターンのいずれかと一致する必要があります。When the method is called, input must match one of these patterns. 有効な書式指定コードの詳細については、「標準の日付と時刻の書式指定文字列」および「カスタム日時書式指定文字列」を参照してください。For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. formatsの一致する要素にz、オフセットzzが存在する必要があることを示すために、、またinputzzzカスタム書式指定子が含まれている場合、そのオフセットには負の符号または正の符号を含める必要があります。If the matched element in formats includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. 符号が指定されていない場合、 FormatExceptionメソッドはをスローします。If the sign is missing, the method throws a FormatException.

重要

このオーバーロードのパラメーターを使用して複数の形式を指定すると、日付と時刻を入力したときの多くのユーザーエクスペリエンスのストレスを軽減するのに役立ちます。 formatsUsing the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. 特に、複数の入力パターンを定義する機能により、アプリケーションでは、月、日、時間、分、秒の先頭にゼロを含めるか、または指定しない日付と時刻の表現を処理することができます。In particular, the ability to define multiple input patterns enables an application to handle date and time representations that can either include or lack leading zeros in months, days, hours, minutes, and seconds.

formats一致する要素が、時刻inputではなく日付を含むことを要求するDateTimeOffset場合、結果のオブジェクトには午前0時 (0:00:00) の時間が割り当てられます。If the matched element in formats requires that input contain a date but not a time, the resulting DateTimeOffset object is assigned a time of midnight (0:00:00). 内のformats一致する要素が時刻inputを含んでいる必要がありますが、 DateTimeOffset日付は含まれていない場合、結果のオブジェクトにはローカルシステムの現在の日付が割り当てられます。If the matched element in formats requires that input contain a time but not a date, the resulting DateTimeOffset object is assigned the current date on the local system. 内のformats一致する要素がオフセットを含むinputを必要としない場合、結果とDateTimeOffsetして得られるオブジェクトのstylesオフセットは、パラメーターの値によって異なります。If the matched element in formats does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. stylesAssumeLocal含まれている場合は、ローカルタイムDateTimeOffsetゾーンのオフセットがオブジェクトに割り当てられます。If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. stylesAssumeUniversal含まれている場合は、世界協定時刻 (UTC) のオフセットまたは + DateTimeOffset 00:00 がオブジェクトに割り当てられます。If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. どちらの値も指定しない場合は、ローカルタイムゾーンのオフセットが使用されます。If neither value is specified, the offset of the local time zone is used.

input使用される特定の日付と時刻のシンボルおよび文字列はformatProvider 、パラメーターによって定義されます。The particular date and time symbols and strings used in input are defined by the formatProvider parameter. inputformats一致する要素が標準書式指定子の文字列である場合も、の正確な形式に当てはまります。The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. パラメーター formatProviderには、次のいずれかを指定できます。The formatProvider parameter can be either of the following:

CultureInfoformatprovider の場合は、現在のカルチャに対応するオブジェクトが使用されます。nullIf formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

stylesパラメーターでは、入力文字列で空白文字を許可するかどうかを定義し、明示的なオフセットコンポーネントのない文字列を解析し、解析操作の一部として UTC 変換をサポートするかどうかを指定します。The styles parameter defines whether white space is permitted in the input string, indicates how strings without an explicit offset component are parsed, and supports UTC conversion as part of the parsing operation. を除きDateTimeStyles NoCurrentDateDefault、列挙体のすべてのメンバーがサポートされます。All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. 次の表に、サポートされている各メンバーの影響を示します。The following table lists the effect of each supported member.

DateTimeStyles のメンバーDateTimeStyles member 動作Behavior
AdjustToUniversal input解析し、必要に応じて UTC に変換します。Parses input and, if necessary, converts it to UTC. これは、文字列を解析し、返されたDateTimeOffset.ToUniversalTime DateTimeOffsetオブジェクトのメソッドを呼び出すことと同じです。It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal 内のformats一致する要素がオフセット値をinput含むを必要としない場合DateTimeOffset 、返されるオブジェクトにはローカルタイムゾーンのオフセットが与えられます。If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. これが既定値です。This is the default value.
AssumeUniversal 内のformats一致する要素がオフセット値をinput含むを必要としない場合DateTimeOffset 、返されたオブジェクトには UTC オフセット (+ 00:00) が与えられます。If the matched element in formats does not require that input contain an offset value, the returned DateTimeOffset object is given the UTC offset (+00:00).
AllowInnerWhite input指定されてformatいない内部の空白を含めることができます。Allows input to include inner white space not specified by format. 余分な空白は、日付と時刻のコンポーネントと個々のコンポーネント (オフセットを除く) の間で使用できます。文字列の解析時には無視されます。Extra white space can appear between date and time components and within individual components (except the offset), and is ignored when parsing the string.
AllowLeadingWhite inputよって指定されてformatsいない先頭のスペースを含めることができます。Allows input to include leading spaces not specified by formats. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowTrailingWhite inputよって指定されてformatsいない末尾のスペースを含めることができます。Allows input to include trailing spaces not specified by formats. これらは、文字列を解析するときには無視されます。These are ignored when parsing the string.
AllowWhiteSpaces inputよって指定されてformatsいない先頭、末尾、および内部スペースを含めることができます。Allows input to include leading, trailing, and inner spaces not specified by formats. 内のformats一致する要素で指定されていない余分な空白文字はすべて、文字列の解析時に無視されます。All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None では、追加のinput空白を使用できないことを示します。Indicates that additional white space is not permitted in input. 一致と見なされるためには、の特定のformats要素で指定されているとおりに空白文字を使用する必要があります。White space must appear exactly as specified in a particular element of formats for a match to occur. これが既定の動作です。This is the default behavior.
RoundtripKind 構造体にDateTimeOffset Kindプロパティが含まれていないため、効果はありません。Has no effect because the DateTimeOffset structure does not include a Kind property.

適用対象