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.

반환

formats, formatProviderstyles 매개 변수에 의해 지정된 대로 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- styles 매개 변수에 함께 사용할 수 없는 DateTimeStyles 값이 들어 있습니다.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. 경우는 input 문자열이 정의한 변형 중 하나를 사용 하 여 이러한 패턴 중 하 나와 일치 하지 않습니다 합니다 styles 매개 변수는 메서드가 throw를 FormatException입니다.If 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.

합니다 formats 매개 변수는 요소가 포함 된 단일 표준 형식 지정자 또는 하나 이상의 사용자 지정 형식 지정자의 가능한 패턴을 정의 하는 문자열 배열은 input 매개 변수입니다.The 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 포함 합니다 zzz, 또는 zzz 오프셋에 있어야 함을 나타내려면 사용자 지정 형식 지정자 input, 해당 오프셋은 음수 기호 또는 양수 기호를 포함 해야 합니다.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. 부호 없는 경우 메서드에서 throw 한 FormatException합니다.If the sign is missing, the method throws a FormatException.

중요

사용 하는 formats 여러 형식을 지정 하려면이 오버 로드의 시간과 날짜를 입력 하면 많은 사용자가 경험 하는 번거로움을 줄이는 데 도움이 됩니다.Using the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. 특히 여러 개의 입력된 패턴을 정의 하는 기능 포함 하거나 부족 한 월, 일, 시간, 분 및 초를 앞에 오는 0 수 있는 날짜와 시간 표현을 처리 하도록 애플리케이션을 수 있습니다.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: 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. 하는 경우 styles 포함 AssumeLocal, 현지 표준 시간대의 오프셋에 할당 되는 DateTimeOffset 개체입니다.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. 경우 styles 포함 AssumeUniversal, utc (협정 세계시) 오프셋 또는 + 00시 할당 되는 DateTimeOffset 개체입니다.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이면 일치 하는 요소의 formats 표준 서식 지정자 문자열.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:

하는 경우 formatprovider 됩니다 null, CultureInfo 현재 문화권에 해당 하는 개체를 사용 합니다.If 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시)에 지정 됩니다.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.

호출자 참고

.NET Framework 4.NET Framework 4, ParseExact 메서드가 throw를 FormatException 구문 분석 될 문자열 경우 시간 구성 요소 및 계약에 없는 AM/PM 지정자를 포함 합니다.In 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.

반환

format, formatProviderstyles 매개 변수에 의해 지정된 대로 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- styles 매개 변수에 함께 사용할 수 없는 DateTimeStyles 값이 들어 있습니다.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:

UTC 오프셋을 지정 하지 않는 문자열의 현지 표준 시간대 오프셋에 있는 것으로 간주 됩니다 (이 경우-07:00) 하지 않는 한를 DateTimeStyles.AssumeUniversal 플래그는 메서드 호출에서 제공 됩니다.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. 경우는 input 문자열이 패턴과 일치 하지 않습니다 합니다 format 매개 변수를 정의한 변화를 styles 매개 변수는 메서드가 throw를 FormatException합니다.If 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.

합니다 format 매개 변수는 단일 표준 형식 지정자 또는의 필수 패턴을 정의 하는 하나 이상의 사용자 지정 형식 지정자를 포함 하는 문자열을 input 매개 변수입니다.The 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 오프셋에 있어야 함을 나타내려면 사용자 지정 형식 지정자 input, 해당 오프셋은 음수 기호 또는 양수 기호를 포함 해야 합니다.If 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. 부호 없는 경우 메서드에서 throw 한 FormatException합니다.If the sign is missing, the method throws a FormatException.

경우 format 되어 있어야 input 날짜가 들어에 시간이 아닌 결과 DateTimeOffset 개체를 할당 하는 시간을 자정 (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 것을 요구 하지 않는 input 결과의 오프셋에 오프셋을 포함 DateTimeOffset 개체의 값에 따라 달라 집니다는 styles 매개 변수입니다.If format does not require that input contain an offset, the offset of the resulting DateTimeOffset object depends on the value of the styles parameter. 하는 경우 styles 포함 AssumeLocal, 현지 표준 시간대의 오프셋에 할당 되는 DateTimeOffset 개체입니다.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. 경우 styles 포함 AssumeUniversal, utc (협정 세계시) 오프셋 또는 + 00시 할당 되는 DateTimeOffset 개체입니다.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:

하는 경우 formatprovider 됩니다 null, CultureInfo 현재 문화권에 해당 하는 개체를 사용 합니다.If 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 것을 요구 하지 않는 input 반환 되는 오프셋된 값이 포함 되어 DateTimeOffset 개체의 현지 표준 시간대 오프셋에 지정 됩니다.If 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시)에 지정 됩니다.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.

호출자 참고

.NET Framework 4.NET Framework 4, ParseExact 메서드가 throw를 FormatException 구문 분석 될 문자열 경우 시간 구성 요소 및 계약에 없는 AM/PM 지정자를 포함 합니다.In 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.

반환

format, formatProviderstyles 매개 변수에 의해 지정된 대로 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-
styles 매개 변수에 함께 사용할 수 없는 DateTimeStyles 값이 들어 있습니다.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 패턴에는 메서드가 throw를 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.

합니다 format 매개 변수는 단일 문자 표준 형식 지정자 또는의 필수 형식을 정의 하는 하나 이상의 사용자 지정 형식 지정자를 포함 하는 문자 범위는 input 매개 변수입니다.The 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 오프셋에 있어야 함을 나타내려면 사용자 지정 형식 지정자 input, 해당 오프셋은 음수 기호 또는 양수 기호를 포함 해야 합니다.If 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. 부호 없는 경우 메서드에서 throw 한 FormatException합니다.If the sign is missing, the method throws a FormatException.

경우 format 되어 있어야 input 날짜가 들어에 시간이 아닌 결과 DateTimeOffset 개체를 할당 하는 시간을 자정 (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 것을 요구 하지 않는 input 결과 오프셋을 포함 DateTimeOffset 개체의 로컬 시스템 표준 시간대 오프셋으로 할당 됩니다.If 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:

하는 경우 formatprovider 됩니다 null, CultureInfo 현재 문화권에 해당 하는 개체를 사용 합니다.If 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. 경우는 input 문자열이이 일치 하지 않습니다 format 매개 변수는 메서드가 throw를 FormatException입니다.If 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.

합니다 format 매개 변수는 단일 표준 형식 지정자 또는의 필수 형식을 정의 하는 하나 이상의 사용자 지정 형식 지정자를 포함 하는 문자열을 input 매개 변수입니다.The 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 오프셋에 있어야 함을 나타내려면 사용자 지정 형식 지정자 input, 해당 오프셋은 음수 기호 또는 양수 기호를 포함 해야 합니다.If 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. 부호 없는 경우 메서드에서 throw 한 FormatException합니다.If the sign is missing, the method throws a FormatException.

경우 format 되어 있어야 input 날짜가 들어에 시간이 아닌 결과 DateTimeOffset 개체를 할당 하는 시간을 자정 (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 것을 요구 하지 않는 input 결과 오프셋을 포함 DateTimeOffset 개체의 로컬 시스템 표준 시간대 오프셋으로 할당 됩니다.If 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 string. formatProvider 매개 변수는 다음 중 하나일 수 있습니다.The formatProvider parameter can be either of the following:

하는 경우 formatprovider 됩니다 null, CultureInfo 현재 문화권에 해당 하는 개체를 사용 합니다.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

호출자 참고

.NET Framework 4.NET Framework 4, ParseExact 메서드가 throw를 FormatException 구문 분석 될 문자열 경우 시간 구성 요소 및 계약에 없는 AM/PM 지정자를 포함 합니다.In 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.

반환

formats, formatProviderstyles 매개 변수에 의해 지정된 대로 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-
styles 매개 변수에 함께 사용할 수 없는 DateTimeStyles 값이 들어 있습니다.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. 하는 경우 input 정의한 변형 중 하나를 사용 하 여 이러한 패턴 중 하 나와 일치 하지 않습니다 합니다 styles 매개 변수는 메서드가 throw를 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.

합니다 formats 매개 변수는 요소가 포함 된 단일 표준 형식 지정자 또는 하나 이상의 사용자 지정 형식 지정자의 가능한 패턴을 정의 하는 문자열 배열은 input 매개 변수입니다.The 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 포함 합니다 zzz, 또는 zzz 오프셋에 있어야 함을 나타내려면 사용자 지정 형식 지정자 input, 해당 오프셋은 음수 기호 또는 양수 기호를 포함 해야 합니다.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. 부호 없는 경우 메서드에서 throw 한 FormatException합니다.If the sign is missing, the method throws a FormatException.

중요

사용 하는 formats 여러 형식을 지정 하려면이 오버 로드의 시간과 날짜를 입력 하면 많은 사용자가 경험 하는 번거로움을 줄이는 데 도움이 됩니다.Using the formats parameter of this overload to specify multiple formats can help reduce the frustration many users experience when they enter dates and times. 특히 여러 개의 입력된 패턴을 정의 하는 기능 포함 하거나 부족 한 월, 일, 시간, 분 및 초를 앞에 오는 0 수 있는 날짜와 시간 표현을 처리 하도록 애플리케이션을 수 있습니다.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: 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. 하는 경우 styles 포함 AssumeLocal, 현지 표준 시간대의 오프셋에 할당 되는 DateTimeOffset 개체입니다.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. 경우 styles 포함 AssumeUniversal, utc (협정 세계시) 오프셋 또는 + 00시 할당 되는 DateTimeOffset 개체입니다.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이면 일치 하는 요소의 formats 표준 서식 지정자 문자열.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:

하는 경우 formatprovider 됩니다 null, CultureInfo 현재 문화권에 해당 하는 개체를 사용 합니다.If 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시)에 지정 됩니다.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.

적용 대상