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.

Возвраты

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров formats, formatProvider и styles.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 имеет значение null.input is null.

Параметр 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- Компонент часов и обозначение AM/PM в input не соответствуют друг другу.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 

Комментарии

Метод анализирует строковое представление даты, соответствующее любому из шаблонов, назначенных formats параметру. DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles)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. Если строка не соответствует ни одному из этих шаблонов с любыми вариациями FormatException, определенными styles параметром, метод создает исключение. 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.

Параметр — это строковый массив, элементы которого содержат либо один стандартный описатель формата, либо один или несколько описателей настраиваемого формата, определяющих возможный шаблон input параметра. 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включает описатели настраиваемого формата zzz , zzили, чтобы указать, что смещение должно присутствовать в 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. Если знак отсутствует, метод создает исключение 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. В частности, возможность определения нескольких шаблонов ввода позволяет приложению работать с представлениями даты и времени, которые могут включать или не иметь начальных нулей в месяцах, днях, часах, минутах и секундах.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включен, то для DateTimeOffset объекта назначается значение времени в формате UTC или + 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, если соответствующий 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:

  • Объект, представляющий язык и региональные параметры, основанные input на интерпретации. CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. Объект, возвращаемый свойством, определяет символы и форматирование в input. CultureInfo.DateTimeFormat DateTimeFormatInfoThe DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the symbols and formatting in input.

  • DateTimeFormatInfo Объект, определяющий формат данных даты и времени.A DateTimeFormatInfo object that defines the format of date and time data.

Если 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 перечисления, кроме. NoCurrentDateDefaultAll members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. В следующей таблице перечислены результаты каждого поддерживаемого элемента.The following table lists the effect of each supported member.

ЧленDateTimeStylesDateTimeStyles member ПоведениеBehavior
AdjustToUniversal Выполняет синтаксический анализ и, при необходимости, преобразует его в время в формате UTC. inputParses 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 если анализируемая строка содержит компонент часа и указатель 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.

Возвраты

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров format, formatProvider и styles.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- Компонент часов и обозначение AM/PM в input не соответствуют друг другу.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, имеют смещение местного часового пояса (в данном случае — 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'

Комментарии

Метод анализирует строковое представление даты, которое должно быть в формате, определенном format параметром. DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles)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.

Параметр представляет собой строку, которая содержит либо один стандартный описатель формата, либо один или несколько настраиваемых описателей формата, определяющих требуемый шаблон input параметра. 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 zz zzz содержит описатели настраиваемого формата input, или, чтобы указать, что смещение должно присутствовать в, это смещение должно включать знак отрицательного или положительного знака. zIf 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: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включен, то для DateTimeOffset объекта назначается значение времени в формате UTC или + 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:

  • Объект, представляющий язык и региональные параметры, основанные input на интерпретации. CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. Объект, возвращаемый свойством, определяет символы и форматирование в input. CultureInfo.DateTimeFormat DateTimeFormatInfoThe DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the symbols and formatting in input.

  • DateTimeFormatInfo Объект, определяющий формат данных даты и времени.A DateTimeFormatInfo object that defines the format of date and time data.

Если 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 перечисления, кроме. NoCurrentDateDefaultAll members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. В следующей таблице перечислены результаты каждого поддерживаемого элемента.The following table lists the effect of each supported member.

ЧленDateTimeStylesDateTimeStyles member ПоведениеBehavior
AdjustToUniversal Выполняет синтаксический анализ и, при необходимости, преобразует его в время в формате UTC. inputParses 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: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 если анализируемая строка содержит компонент часа и указатель 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.

Возвраты

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров format, formatProvider и styles.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-
Компонент часов и обозначение AM/PM в input не соответствуют друг другу.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 FormatExceptionне format соответствует шаблону, метод создает исключение.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.

Параметр — это диапазон символов, который содержит либо описатель стандартного формата с одним символом, либо один или несколько настраиваемых описателей формата, которые определяют требуемый формат input параметра. 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 zz zzz содержит описатели настраиваемого формата input, или, чтобы указать, что смещение должно присутствовать в, это смещение должно включать знак отрицательного или положительного знака. zIf 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: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:

  • Объект, представляющий язык и региональные параметры, основанные input на интерпретации. CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. Объект, возвращаемый его DateTimeFormat свойством, определяет символы и форматирование inputв. DateTimeFormatInfoThe DateTimeFormatInfo object returned by its DateTimeFormat property defines the symbols and formatting in input.

  • DateTimeFormatInfo Объект, определяющий формат данных даты и времени.A DateTimeFormatInfo object that defines the format of date and time data.

Если 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.

Возвраты

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров format и formatProvider.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- Свойство format имеет значение null.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- Компонент часов и обозначение AM/PM в input не соответствуют друг другу.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

Комментарии

Метод анализирует строковое представление даты, которое должно быть в формате, определенном format параметром. ParseExact(String, String, IFormatProvider)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.

Параметр представляет собой строку, содержащую либо один стандартный описатель формата, либо один или несколько настраиваемых описателей формата, которые определяют требуемый формат input параметра. 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 zz zzz содержит описатели настраиваемого формата input, или, чтобы указать, что смещение должно присутствовать в, это смещение должно включать знак отрицательного или положительного знака. zIf 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: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:

  • Объект, представляющий язык и региональные параметры, основанные input на интерпретации. CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. Объект, возвращаемый его DateTimeFormat свойством, определяет символы и форматирование inputв. DateTimeFormatInfoThe DateTimeFormatInfo object returned by its DateTimeFormat property defines the symbols and formatting in input.

  • DateTimeFormatInfo Объект, определяющий формат данных даты и времени.A DateTimeFormatInfo object that defines the format of date and time data.

Если formatprovider параметр nullимеет значение CultureInfo , то используется объект, соответствующий текущему языку и региональным параметрам.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Примечания для тех, кто вызывает этот метод

В метод создает исключение, FormatException если анализируемая строка содержит компонент часа и указатель 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.

Возвраты

Объект, эквивалентный дате и времени, содержащимся в параметре input, в соответствии со значениями параметров formats, formatProvider и styles.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-
Компонент часов и обозначение AM/PM в input не соответствуют друг другу.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 не соответствует ни одному из этих шаблонов с вариациями FormatException, определенными styles параметром, метод создает исключение.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.

Параметр — это строковый массив, элементы которого содержат либо один стандартный описатель формата, либо один или несколько описателей настраиваемого формата, определяющих возможный шаблон input параметра. 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включает описатели настраиваемого формата zzz , zzили, чтобы указать, что смещение должно присутствовать в 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. Если знак отсутствует, метод создает исключение 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. В частности, возможность определения нескольких шаблонов ввода позволяет приложению работать с представлениями даты и времени, которые могут включать или не иметь начальных нулей в месяцах, днях, часах, минутах и секундах.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включен, то для DateTimeOffset объекта назначается значение времени в формате UTC или + 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, если соответствующий 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:

  • Объект, представляющий язык и региональные параметры, основанные input на интерпретации. CultureInfoA CultureInfo object that represents the culture based on which input is interpreted. Объект, возвращаемый свойством, определяет символы и форматирование в input. CultureInfo.DateTimeFormat DateTimeFormatInfoThe DateTimeFormatInfo object returned by the CultureInfo.DateTimeFormat property defines the symbols and formatting in input.

  • DateTimeFormatInfo Объект, определяющий формат данных даты и времени.A DateTimeFormatInfo object that defines the format of date and time data.

Если 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 перечисления, кроме. NoCurrentDateDefaultAll members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. В следующей таблице перечислены результаты каждого поддерживаемого элемента.The following table lists the effect of each supported member.

ЧленDateTimeStylesDateTimeStyles member ПоведениеBehavior
AdjustToUniversal Выполняет синтаксический анализ и, при необходимости, преобразует его в время в формате UTC. inputParses 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.

Применяется к