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

Definição

Converte a representação da cadeia de caracteres especificada de uma data e hora no DateTimeOffset equivalente.Converts the specified string representation of a date and time to its DateTimeOffset equivalent. O formato da representação da cadeia de caracteres deve corresponder exatamente a um formato especificado.The format of the string representation must match a specified format exactly.

Sobrecargas

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

Converte a representação da cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato, informações do formato específico da cultura e o estilo especificados.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. O formato da representação da cadeia de caracteres deve corresponder exatamente a um dos formatos especificados.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)

Converte a representação de cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato especificado, as informações de formato específicas da cultura e o estilo.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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)

Converte um intervalo de caracteres que representa uma data e hora em seu equivalente DateTimeOffset usando o formato especificado, as informações de formato específicas da cultura e o estilo.Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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)

Converte a representação de cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato especificado e as informações de formato específicas da cultura.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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)

Converte um intervalo de caracteres que contém a representação da cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato, informações do formato específico da cultura e o estilo especificados.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. O formato da representação de data e hora deve corresponder exatamente a um dos formatos especificados.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)

Converte a representação da cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato, informações do formato específico da cultura e o estilo especificados.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified formats, culture-specific format information, and style. O formato da representação da cadeia de caracteres deve corresponder exatamente a um dos formatos especificados.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

Parâmetros

input
String String String String

Uma cadeia de caracteres que contém uma data e hora a ser convertida.A string that contains a date and time to convert.

formats
String[]

Uma matriz de especificadores de formato que definem os formatos esperados de input.An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Um objeto que fornece informações de formatação específicas de cultura sobre input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Um combinação bit a bit de valores de enumeração que indica o formato permitido de input.A bitwise combination of enumeration values that indicates the permitted format of input.

Retornos

Um objeto equivalente à data e hora contidas no parâmetro input, conforme especificado pelos parâmetros formats, formatProvider e 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.

Exceções

O deslocamento é maior que 14 horas ou menor que -14 horas.The offset is greater than 14 hours or less than -14 hours.

- ou --or- styles inclui um valor sem suporte.styles includes an unsupported value.

- ou --or- O parâmetro styles contém valores DateTimeStyles que não podem ser usados juntos.The styles parameter contains DateTimeStyles values that cannot be used together.

input é uma cadeia de caracteres vazia ("").input is an empty string ("").

- ou --or- input não contém uma representação da cadeia de caracteres válida de uma data e hora.input does not contain a valid string representation of a date and time.

- ou --or- Nenhum elemento de formats contém um especificador de formato válido.No element of formats contains a valid format specifier.

- ou --or- O componente de hora e o designador AM/PM no input não concordam.The hour component and the AM/PM designator in input do not agree.

Exemplos

O exemplo a seguir define vários formatos de entrada para a representação de cadeia de caracteres de uma data e hora e um valor de deslocamento e, em seguida, passa a DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) cadeia de caracteres que é inserida pelo usuário para o método.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 

Comentários

O DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) método analisa a representação da cadeia de caracteres de uma data que corresponde a qualquer um dos padrões atribuídos formats ao parâmetro.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. Se a input cadeia de caracteres não corresponder a um desses padrões com nenhuma das variações definidas styles pelo parâmetro, o método lançará um FormatException.If the input string does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. Além de comparar input com vários padrões de formatação, essa sobrecarga se comporta de DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) forma idêntica ao método.Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

O formats parâmetro é uma matriz de cadeia de caracteres cujos elementos contêm um único especificador de formato padrão ou um ou mais especificadores input de formato personalizados que definem o padrão possível do parâmetro.The formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of the input parameter. Quando o método é chamado, input deve corresponder a um desses padrões.When the method is called, input must match one of these patterns. Para obter detalhes sobre códigos de formatação válidos, consulte cadeias de caracteres de formato padrão de data e hora e cadeias de caracteres de formato de data e hora personalizadas.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se o elemento correspondente no formats incluir os zespecificadores de zzz formato personalizado, zz, ou para indicar que um deslocamento deve estar presente inputno, esse deslocamento deverá incluir um sinal negativo ou um sinal positivo.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. Se o sinal estiver ausente, o método lançará FormatExceptionum.If the sign is missing, the method throws a FormatException.

Importante

O formats uso do parâmetro dessa sobrecarga para especificar vários formatos pode ajudar a reduzir a frustração que muitos usuários enfrentam quando inserem datas e horas.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. Em particular, a capacidade de definir vários padrões de entrada permite que um aplicativo manipule representações de data e hora que podem incluir ou não zeros à esquerda em meses, dias, horas, minutos e segundos.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. O exemplo fornece uma ilustração disso.The example provides an illustration of this.

Se o elemento correspondente no formats exigir que input contenha uma data, mas não uma hora, DateTimeOffset o objeto resultante será atribuído a um horário de meia-noite (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). Se o elemento correspondente no formats exigir que input contenha uma hora, mas não uma data, DateTimeOffset o objeto resultante será atribuído à data atual no sistema local.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. Se o elemento correspondente no formats não exigir que input contenha um deslocamento, o deslocamento do objeto resultante DateTimeOffset dependerá do valor do styles parâmetro.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. Caso styles inclua AssumeLocal, o deslocamento do fuso horário local é atribuído ao objeto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Caso styles inclua AssumeUniversal, o deslocamento de Tempo Universal Coordenado (UTC), ou +00:00, é atribuído ao objeto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Caso nenhum valor seja especificado, o deslocamento do fuso horário local é usado.If neither value is specified, the offset of the local time zone is used.

Os símbolos de data e hora específicos e as cadeias de caracteres usadas em input são definidos pelo parâmetro formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. O mesmo é verdadeiro para o formato preciso de input, se o elemento correspondente de formats for uma cadeia de caracteres de especificador de formato padrão.The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. O parâmetro formatProvider pode ser qualquer um dos seguintes:The formatProvider parameter can be either of the following:

Caso formatprovider seja null, o objeto CultureInfo que corresponde à cultura atual é usado.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

O styles parâmetro define se o espaço em branco é permitido na cadeia de caracteres de entrada, indica como as cadeias de caracteres sem um componente de deslocamento explícito são analisadas e dá suporte à conversão UTC como parte da operação de análise.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. Todos os membros da enumeração DateTimeStyles são suportados, exceto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. A tabela a seguir lista o efeito de cada membro suportado.The following table lists the effect of each supported member.

DateTimeStylesassociadoDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analisa input e, caso necessário, converte-o em UTC.Parses input and, if necessary, converts it to UTC. Ele é equivalente à análise de uma cadeia de caracteres e, em seguida, à chamada do método DateTimeOffset.ToUniversalTime do objeto DateTimeOffset retornado.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se o elemento correspondente no formats não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento do fuso horário local.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. Este é o valor padrão.This is the default value.
AssumeUniversal Se o elemento correspondente no formats não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento 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 Permite input incluir espaço em branco interno não especificado por format.Allows input to include inner white space not specified by format. O espaço em branco extra pode aparecer entre os componentes de data e hora e dentro de componentes individuais (exceto o deslocamento) e é ignorado durante a análise da cadeia de caracteres.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 Permite input incluir espaços à esquerda não especificados pelo formats.Allows input to include leading spaces not specified by formats. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowTrailingWhite Permite input incluir espaços à direita não especificados por formats.Allows input to include trailing spaces not specified by formats. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowWhiteSpaces Permite input incluir espaços à esquerda, à direita e internos não especificados pelo formats.Allows input to include leading, trailing, and inner spaces not specified by formats. Todos os caracteres de espaço em branco extras não especificados no elemento correspondente formats em são ignorados durante a análise da cadeia de caracteres.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Indica que o espaço em branco adicional não é permitido em input.Indicates that additional white space is not permitted in input. O espaço em branco deve aparecer exatamente como especificado em um elemento formats específico de para que ocorra uma correspondência.White space must appear exactly as specified in a particular element of formats for a match to occur. Este é o comportamento padrão.This is the default behavior.
RoundtripKind Não tem efeito porque a DateTimeOffset estrutura não inclui uma Kind propriedade.Has no effect because the DateTimeOffset structure does not include a Kind property.

Notas aos Chamadores

No, o ParseExact método gera um FormatException se a cadeia de caracteres a ser analisada contiver um componente de hora e um designador AM/PM que não estão no contrato. .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 No e em versões anteriores, o designador AM/PM é ignorado.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Veja também

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

Converte a representação de cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato especificado, as informações de formato específicas da cultura e o estilo.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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

Parâmetros

input
String String String String

Uma cadeia de caracteres que contém uma data e hora a ser convertida.A string that contains a date and time to convert.

format
String String String String

Um especificador de formato que define o formato esperado de input.A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Um objeto que fornece informações de formatação específicas de cultura sobre input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Um combinação bit a bit de valores de enumeração que indica o formato permitido de input.A bitwise combination of enumeration values that indicates the permitted format of input.

Retornos

Um objeto equivalente à data e hora contidas no parâmetro input, conforme especificado pelos parâmetros format, formatProvider e 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.

Exceções

O deslocamento é maior que 14 horas ou menor que -14 horas.The offset is greater than 14 hours or less than -14 hours.

- ou --or- O parâmetro styles inclui um valor sem suporte.The styles parameter includes an unsupported value.

- ou --or- O parâmetro styles contém valores DateTimeStyles que não podem ser usados juntos.The styles parameter contains DateTimeStyles values that cannot be used together.

input é null.input is null.

- ou --or- format é null.format is null.

input é uma cadeia de caracteres vazia ("").input is an empty string ("").

- ou --or- input não contém uma representação da cadeia de caracteres válida de uma data e hora.input does not contain a valid string representation of a date and time.

- ou --or- format é uma cadeia de caracteres vazia.format is an empty string.

- ou --or- O componente de hora e o designador AM/PM no input não concordam.The hour component and the AM/PM designator in input do not agree.

Exemplos

O exemplo a seguir usa DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) o método com especificadores de formato padrão e personalizado, a cultura invariável DateTimeStyles e vários valores para analisar várias cadeias de caracteres de data e hora.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.

O exemplo a seguir usa uma variedade DateTimeStyles de valores para analisar uma matriz de cadeias de caracteres que são esperadas de acordo com o 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. Como a saída do exemplo mostra, as cadeias de caracteres que estão no formato adequado falham ao analisar se:As the output from the example shows, strings that are in the proper format fail to parse if:

As cadeias de caracteres que não especificam um deslocamento UTC devem ter o deslocamento do fuso horário local (nesse caso,-07:00), a DateTimeStyles.AssumeUniversal menos que o sinalizador seja fornecido na chamada do método.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. Nesse caso, supõe-se que seja um horário coordenado universal.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'

Comentários

O DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) método analisa a representação de cadeia de caracteres de uma data, que deve estar no formato definido format pelo parâmetro.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. Ele também exige que os <elementos Date > <, time > e <offset > da representação de cadeia de caracteres de uma data e hora apareçam na ordem especificada formatpor.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. Se a input format cadeia de caracteres não corresponder ao padrão do parâmetro, com styles quaisquer variações definidas pelo parâmetro, o método lançará um FormatException.If the input string does not match the pattern of the format parameter, with any variations defined by the styles parameter, the method throws a FormatException. Por outro lado, DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) o método analisa a representação da cadeia de caracteres de uma data em qualquer um dos formatos reconhecidos pelo DateTimeFormatInfo objeto do provedor de formato.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. Parsetambém permite que <os elementos Date <>, time > <e offset > da representação de cadeia de caracteres de uma data e hora apareçam em qualquer ordem.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

O format parâmetro é uma cadeia de caracteres que contém um único especificador de formato padrão ou um ou mais especificadores input de formato personalizados que definem o padrão necessário do parâmetro.The format parameter is a string that contains either a single standard format specifier or one or more custom format specifiers that define the required pattern of the input parameter. Para obter detalhes sobre códigos de formatação válidos, consulte cadeias de caracteres de formato padrão de data e hora e cadeias de caracteres de formato de data e hora personalizadas.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se format inclui os zespecificadores de zzz formato personalizado, zz, ou para indicar que um deslocamento deve estar presente inputno, esse deslocamento deve incluir um sinal negativo ou um sinal positivo.If format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se o sinal estiver ausente, o método lançará FormatExceptionum.If the sign is missing, the method throws a FormatException.

Se format o exigir input que contenha uma data, mas não uma hora DateTimeOffset , o objeto resultante será atribuído a uma hora da meia-noite (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). Se format o exigir input que o contenha uma hora, mas não uma DateTimeOffset data, o objeto resultante será atribuído à data atual no sistema local.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. Se format não exigir que input contenha um deslocamento, o deslocamento do objeto resultante DateTimeOffset dependerá do valor do styles parâmetro.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. Caso styles inclua AssumeLocal, o deslocamento do fuso horário local é atribuído ao objeto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Caso styles inclua AssumeUniversal, o deslocamento de Tempo Universal Coordenado (UTC), ou +00:00, é atribuído ao objeto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Caso nenhum valor seja especificado, o deslocamento do fuso horário local é usado.If neither value is specified, the offset of the local time zone is used.

Os símbolos de data e hora específicos e as cadeias de caracteres usadas em input são definidos pelo parâmetro formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. O mesmo é verdadeiro para o formato preciso de input, se format for uma cadeia de caracteres de especificador de formato padrão.The same is true for the precise format of input, if format is a standard format specifier string. O parâmetro formatProvider pode ser qualquer um dos seguintes:The formatProvider parameter can be either of the following:

Caso formatprovider seja null, o objeto CultureInfo que corresponde à cultura atual é usado.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

O styles parâmetro define se o espaço em branco é permitido na cadeia de caracteres de entrada, indica como as cadeias de caracteres sem um componente de deslocamento explícito são analisadas e dá suporte à conversão UTC como parte da operação de análise.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. Todos os membros da enumeração DateTimeStyles são suportados, exceto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. A tabela a seguir lista o efeito de cada membro suportado.The following table lists the effect of each supported member.

DateTimeStylesassociadoDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analisa input e, caso necessário, converte-o em UTC.Parses input and, if necessary, converts it to UTC. Ele é equivalente à análise de uma cadeia de caracteres e, em seguida, à chamada do método DateTimeOffset.ToUniversalTime do objeto DateTimeOffset retornado.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se format não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento do fuso horário local.If format does not require that input contain an offset value, the returned DateTimeOffset object is given the offset of the local time zone. Este é o valor padrão.This is the default value.
AssumeUniversal Se format não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento 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 Permite input incluir espaço em branco interno não especificado por format.Allows input to include inner white space not specified by format. O espaço em branco extra pode aparecer entre os componentes de data e hora e dentro de componentes individuais e é ignorado durante a análise da cadeia de caracteres.Extra white space can appear between date and time components and within individual components, and is ignored when parsing the string.
AllowLeadingWhite Permite input incluir espaços à esquerda não especificados pelo format.Allows input to include leading spaces not specified by format. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowTrailingWhite Permite input incluir espaços à direita não especificados por format.Allows input to include trailing spaces not specified by format. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowWhiteSpaces Permite input incluir espaços à esquerda, à direita e internos não especificados pelo format.Allows input to include leading, trailing, and inner spaces not specified by format. Todos os caracteres de espaço em branco extras não format especificados no são ignorados durante a análise da cadeia de caracteres.All extra white-space characters not specified in format are ignored when parsing the string.
None Indica que o espaço em branco adicional não é permitido em input.Indicates that additional white space is not permitted in input. O espaço em branco deve aparecer exatamente como formatespecificado em.White space must appear exactly as specified in format. Este é o comportamento padrão.This is the default behavior.
RoundtripKind Não tem efeito porque a DateTimeOffset estrutura não inclui uma Kind propriedade.Has no effect because the DateTimeOffset structure does not include a Kind property.

Notas aos Chamadores

No, o ParseExact método gera um FormatException se a cadeia de caracteres a ser analisada contiver um componente de hora e um designador AM/PM que não estão no contrato. .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 No e em versões anteriores, o designador AM/PM é ignorado.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Veja também

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

Converte um intervalo de caracteres que representa uma data e hora em seu equivalente DateTimeOffset usando o formato especificado, as informações de formato específicas da cultura e o estilo.Converts a character span that represents a date and time to its DateTimeOffset equivalent using the specified format, culture-specific format information, and style. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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

Parâmetros

input
ReadOnlySpan<Char>

Um intervalo de caracteres que representa uma data e hora.A character span that represents a date and time.

format
ReadOnlySpan<Char>

Um intervalo de caracteres que contém um especificador de formato que define o formato esperado de input.A character span that contains a format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Um objeto que fornece informações de formatação específicas à cultura sobre input.An object that provides culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Um combinação bit a bit de valores de enumeração que indica o formato permitido de input.A bitwise combination of enumeration values that indicates the permitted format of input.

Retornos

Um objeto equivalente à data e hora contidas no parâmetro input, conforme especificado pelos parâmetros format, formatProvider e 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.

Exceções

O deslocamento é maior que 14 horas ou menor que -14 horas.The offset is greater than 14 hours or less than -14 hours.
- ou --or-
O parâmetro styles inclui um valor sem suporte.The styles parameter includes an unsupported value.
- ou --or-
O parâmetro styles contém valores DateTimeStyles que não podem ser usados juntos.The styles parameter contains DateTimeStyles values that cannot be used together.

input é um intervalo de caracteres vazio.input is an empty character span.
- ou - input não contém uma representação da cadeia de caracteres válida de uma data e hora.-or- input does not contain a valid string representation of a date and time.
- ou - format é um intervalo de caracteres vazio.-or- format is an empty character span.
- ou --or-
O componente de hora e o designador AM/PM no input não concordam.The hour component and the AM/PM designator in input do not agree.

Comentários

Esse método analisa um intervalo de caracteres que representa uma data, que deve estar no formato definido pelo format parâmetro.This method parses a character span that represents a date, which must be in the format defined by the format parameter. Ele também exige que os <elementos Date > <, time > e <offset > da representação de cadeia de caracteres de uma data e hora apareçam na ordem especificada formatpor.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. Se input não corresponder ao format padrão, o método lançará um FormatException.If input does not match the format pattern, the method throws a FormatException. Por outro lado, DateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) o método analisa a representação da cadeia de caracteres de uma data em qualquer um dos formatos reconhecidos pelo DateTimeFormatInfo objeto do provedor de formato.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. Parsetambém permite que <os elementos Date <>, time > <e offset > da representação de cadeia de caracteres de uma data e hora apareçam em qualquer ordem.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

O format parâmetro é um intervalo de caracteres que contém um especificador de formato padrão de caractere único ou um ou mais especificadores de formato personalizados que definem o input formato necessário do parâmetro.The format parameter is a character span that contains either a single-character standard format specifier or one or more custom format specifiers that define the required format of the input parameter. Para obter detalhes sobre códigos de formatação válidos, consulte cadeias de caracteres de formato padrão de data e hora e cadeias de caracteres de formato de data e hora personalizadas.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se format inclui os zespecificadores de zzz formato personalizado, zz, ou para indicar que um deslocamento deve estar presente inputno, esse deslocamento deve incluir um sinal negativo ou um sinal positivo.If format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se o sinal estiver ausente, o método lançará FormatExceptionum.If the sign is missing, the method throws a FormatException.

Se format o exigir input que contenha uma data, mas não uma hora DateTimeOffset , o objeto resultante será atribuído a uma hora da meia-noite (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). Se format o exigir input que o contenha uma hora, mas não uma DateTimeOffset data, o objeto resultante será atribuído à data atual no sistema local.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. Se format não exigir que input o contenha um deslocamento, o DateTimeOffset objeto resultante será atribuído ao deslocamento de fuso horário do sistema local.If format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

Os símbolos e as cadeias de caracteres de data input e hora específicos usados formatProvider no são definidos pelo parâmetro, como é input o format formato preciso de If é um especificador de formato padrão.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. O parâmetro formatProvider pode ser qualquer um dos seguintes:The formatProvider parameter can be either of the following:

Caso formatprovider seja null, o objeto CultureInfo que corresponde à cultura atual é usado.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)

Converte a representação de cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato especificado e as informações de formato específicas da cultura.Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified format and culture-specific format information. O formato de representação da cadeia de caracteres deve corresponder exatamente ao formato especificado.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

Parâmetros

input
String String String String

Uma cadeia de caracteres que contém uma data e hora a ser convertida.A string that contains a date and time to convert.

format
String String String String

Um especificador de formato que define o formato esperado de input.A format specifier that defines the expected format of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Um objeto que fornece informações de formatação específicas de cultura sobre input.An object that supplies culture-specific formatting information about input.

Retornos

Um objeto equivalente à data e hora contida no input, conforme especificado por format e formatProvider.An object that is equivalent to the date and time that is contained in input as specified by format and formatProvider.

Exceções

O deslocamento é maior que 14 horas ou menor que -14 horas.The offset is greater than 14 hours or less than -14 hours.

input é null.input is null.

- ou --or- format é null.format is null.

input é uma cadeia de caracteres vazia ("").input is an empty string ("").

- ou --or- input não contém uma representação da cadeia de caracteres válida de uma data e hora.input does not contain a valid string representation of a date and time.

- ou --or- format é uma cadeia de caracteres vazia.format is an empty string.

- ou --or- O componente de hora e o designador AM/PM no input não concordam.The hour component and the AM/PM designator in input do not agree.

Exemplos

O exemplo a seguir usa DateTimeOffset.ParseExact(String, String, IFormatProvider) o método com especificadores de formato padrão e personalizado e a cultura invariável para analisar várias cadeias de caracteres de data e hora.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.                     

O exemplo a seguir analisa uma matriz de cadeias de caracteres que devem estar em conformidade com o ISO 8601.The following example parses an array of strings that are expected to conform to ISO 8601. Como a saída do exemplo mostra, as cadeias de caracteres com espaços à esquerda ou à direita não são analisadas com êxito, como as cadeias de caracteres com elementos de data e hora fora do intervalo.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

Comentários

O ParseExact(String, String, IFormatProvider) método analisa a representação de cadeia de caracteres de uma data, que deve estar no formato definido format pelo parâmetro.The ParseExact(String, String, IFormatProvider) method parses the string representation of a date, which must be in the format defined by the format parameter. Ele também exige que os <elementos Date > <, time > e <offset > da representação de cadeia de caracteres de uma data e hora apareçam na ordem especificada formatpor.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. Se a input cadeia de caracteres não corresponder format a esse parâmetro, o método FormatExceptionlançará um.If the input string does not match this format parameter, the method throws a FormatException. Por outro lado, DateTimeOffset.Parse(String, IFormatProvider) o método analisa a representação da cadeia de caracteres de uma data em qualquer um dos formatos reconhecidos pelo DateTimeFormatInfo objeto do provedor de formato.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. Parsetambém permite que <os elementos Date <>, time > <e offset > da representação de cadeia de caracteres de uma data e hora apareçam em qualquer ordem.Parse also allows the <Date>, <Time>, and <Offset> elements of the string representation of a date and time to appear in any order.

O format parâmetro é uma cadeia de caracteres que contém um único especificador de formato padrão ou um ou mais especificadores input de formato personalizados que definem o formato necessário do parâmetro.The format parameter is a string that contains either a single standard format specifier or one or more custom format specifiers that define the required format of the input parameter. Para obter detalhes sobre códigos de formatação válidos, consulte cadeias de caracteres de formato padrão de data e hora e cadeias de caracteres de formato de data e hora personalizadas.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se format inclui os zespecificadores de zzz formato personalizado, zz, ou para indicar que um deslocamento deve estar presente inputno, esse deslocamento deve incluir um sinal negativo ou um sinal positivo.If format includes the z, zz, or zzz custom format specifiers to indicate that an offset must be present in input, that offset must include either a negative sign or a positive sign. Se o sinal estiver ausente, o método lançará FormatExceptionum.If the sign is missing, the method throws a FormatException.

Se format o exigir input que contenha uma data, mas não uma hora DateTimeOffset , o objeto resultante será atribuído a uma hora da meia-noite (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). Se format o exigir input que o contenha uma hora, mas não uma DateTimeOffset data, o objeto resultante será atribuído à data atual no sistema local.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. Se format não exigir que input o contenha um deslocamento, o DateTimeOffset objeto resultante será atribuído ao deslocamento de fuso horário do sistema local.If format does not require that input contain an offset, the resulting DateTimeOffset object is assigned the time zone offset of the local system.

Os símbolos e as cadeias de caracteres de data input e hora específicos usados formatProvider no são definidos pelo parâmetro, como é input o format formato preciso de If é uma cadeia de caracteres de especificador de formato padrão.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. O parâmetro formatProvider pode ser qualquer um dos seguintes:The formatProvider parameter can be either of the following:

Caso formatprovider seja null, o objeto CultureInfo que corresponde à cultura atual é usado.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

Notas aos Chamadores

No, o ParseExact método gera um FormatException se a cadeia de caracteres a ser analisada contiver um componente de hora e um designador AM/PM que não estão no contrato. .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 No e em versões anteriores, o designador AM/PM é ignorado.In the .NET Framework 3,5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Veja também

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

Converte um intervalo de caracteres que contém a representação da cadeia de caracteres especificada de data e hora em seu equivalente DateTimeOffset usando o formato, informações do formato específico da cultura e o estilo especificados.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. O formato da representação de data e hora deve corresponder exatamente a um dos formatos especificados.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

Parâmetros

input
ReadOnlySpan<Char>

Um intervalo de caracteres que contém uma data e hora a serem convertidas.A character span that contains a date and time to convert.

formats
String[]

Uma matriz de especificadores de formato que definem os formatos esperados de input.An array of format specifiers that define the expected formats of input.

formatProvider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

Um objeto que fornece informações de formatação específicas de cultura sobre input.An object that supplies culture-specific formatting information about input.

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

Um combinação bit a bit de valores de enumeração que indica o formato permitido de input.A bitwise combination of enumeration values that indicates the permitted format of input.

Retornos

Um objeto equivalente à data e hora contidas no parâmetro input, conforme especificado pelos parâmetros formats, formatProvider e 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.

Exceções

O deslocamento é maior que 14 horas ou menor que -14 horas.The offset is greater than 14 hours or less than -14 hours.
-ou- styles inclui um valor sem suporte.-or- styles includes an unsupported value.
- ou --or-
O parâmetro styles contém valores DateTimeStyles que não podem ser usados juntos.The styles parameter contains DateTimeStyles values that cannot be used together.

input é um intervalo de caracteres vazio.input is an empty character span.
- ou - input não contém uma representação da cadeia de caracteres válida de uma data e hora.-or- input does not contain a valid string representation of a date and time.
- ou --or-
Nenhum elemento de formats contém um especificador de formato válido.No element of formats contains a valid format specifier.
- ou --or-
O componente de hora e o designador AM/PM no input não concordam.The hour component and the AM/PM designator in input do not agree.

Comentários

Esse método analisa um intervalo de caracteres que representa uma data que corresponde a qualquer um dos padrões atribuídos ao formats parâmetro.This method parses a character span representing a date that matches any one of the patterns assigned to the formats parameter. Se input o não corresponder a qualquer um desses padrões com nenhuma das variações definidas styles pelo parâmetro, o método lançará um FormatException.If input does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. Além de comparar input com vários padrões de formatação, essa sobrecarga se comporta de DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) forma idêntica ao método.Aside from comparing input to multiple formatting patterns, this overload behaves identically to the DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) method.

O formats parâmetro é uma matriz de cadeia de caracteres cujos elementos contêm um único especificador de formato padrão ou um ou mais especificadores input de formato personalizados que definem o padrão possível do parâmetro.The formats parameter is a string array whose elements contain either a single standard format specifier or one or more custom format specifiers that define the possible pattern of the input parameter. Quando o método é chamado, input deve corresponder a um desses padrões.When the method is called, input must match one of these patterns. Para obter detalhes sobre códigos de formatação válidos, consulte cadeias de caracteres de formato padrão de data e hora e cadeias de caracteres de formato de data e hora personalizadas.For details about valid formatting codes, see Standard Date and Time Format Strings and Custom Date and Time Format Strings. Se o elemento correspondente no formats incluir os zespecificadores de zzz formato personalizado, zz, ou para indicar que um deslocamento deve estar presente inputno, esse deslocamento deverá incluir um sinal negativo ou um sinal positivo.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. Se o sinal estiver ausente, o método lançará FormatExceptionum.If the sign is missing, the method throws a FormatException.

Importante

O formats uso do parâmetro dessa sobrecarga para especificar vários formatos pode ajudar a reduzir a frustração que muitos usuários enfrentam quando inserem datas e horas.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. Em particular, a capacidade de definir vários padrões de entrada permite que um aplicativo manipule representações de data e hora que podem incluir ou não zeros à esquerda em meses, dias, horas, minutos e segundos.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.

Se o elemento correspondente no formats exigir que input contenha uma data, mas não uma hora, DateTimeOffset o objeto resultante será atribuído a um horário de meia-noite (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). Se o elemento correspondente no formats exigir que input contenha uma hora, mas não uma data, DateTimeOffset o objeto resultante será atribuído à data atual no sistema local.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. Se o elemento correspondente no formats não exigir que input contenha um deslocamento, o deslocamento do objeto resultante DateTimeOffset dependerá do valor do styles parâmetro.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. Caso styles inclua AssumeLocal, o deslocamento do fuso horário local é atribuído ao objeto DateTimeOffset.If styles includes AssumeLocal, the offset of the local time zone is assigned to the DateTimeOffset object. Caso styles inclua AssumeUniversal, o deslocamento de Tempo Universal Coordenado (UTC), ou +00:00, é atribuído ao objeto DateTimeOffset.If styles includes AssumeUniversal, the Coordinated Universal Time (UTC) offset, or +00:00, is assigned to the DateTimeOffset object. Caso nenhum valor seja especificado, o deslocamento do fuso horário local é usado.If neither value is specified, the offset of the local time zone is used.

Os símbolos de data e hora específicos e as cadeias de caracteres usadas em input são definidos pelo parâmetro formatProvider.The particular date and time symbols and strings used in input are defined by the formatProvider parameter. O mesmo é verdadeiro para o formato preciso de input, se o elemento correspondente de formats for uma cadeia de caracteres de especificador de formato padrão.The same is true for the precise format of input, if the matching element of formats is a standard format specifier string. O parâmetro formatProvider pode ser qualquer um dos seguintes:The formatProvider parameter can be either of the following:

Caso formatprovider seja null, o objeto CultureInfo que corresponde à cultura atual é usado.If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.

O styles parâmetro define se o espaço em branco é permitido na cadeia de caracteres de entrada, indica como as cadeias de caracteres sem um componente de deslocamento explícito são analisadas e dá suporte à conversão UTC como parte da operação de análise.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. Todos os membros da enumeração DateTimeStyles são suportados, exceto NoCurrentDateDefault.All members of the DateTimeStyles enumeration are supported except NoCurrentDateDefault. A tabela a seguir lista o efeito de cada membro suportado.The following table lists the effect of each supported member.

DateTimeStylesassociadoDateTimeStyles member ComportamentoBehavior
AdjustToUniversal Analisa input e, caso necessário, converte-o em UTC.Parses input and, if necessary, converts it to UTC. Ele é equivalente à análise de uma cadeia de caracteres e, em seguida, à chamada do método DateTimeOffset.ToUniversalTime do objeto DateTimeOffset retornado.It is equivalent to parsing a string, and then calling the DateTimeOffset.ToUniversalTime method of the returned DateTimeOffset object.
AssumeLocal Se o elemento correspondente no formats não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento do fuso horário local.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. Este é o valor padrão.This is the default value.
AssumeUniversal Se o elemento correspondente no formats não exigir que input contenha um valor de deslocamento, o DateTimeOffset objeto retornado receberá o deslocamento 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 Permite input incluir espaço em branco interno não especificado por format.Allows input to include inner white space not specified by format. O espaço em branco extra pode aparecer entre os componentes de data e hora e dentro de componentes individuais (exceto o deslocamento) e é ignorado durante a análise da cadeia de caracteres.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 Permite input incluir espaços à esquerda não especificados pelo formats.Allows input to include leading spaces not specified by formats. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowTrailingWhite Permite input incluir espaços à direita não especificados por formats.Allows input to include trailing spaces not specified by formats. Eles são ignorados durante a análise da cadeia de caracteres.These are ignored when parsing the string.
AllowWhiteSpaces Permite input incluir espaços à esquerda, à direita e internos não especificados pelo formats.Allows input to include leading, trailing, and inner spaces not specified by formats. Todos os caracteres de espaço em branco extras não especificados no elemento correspondente formats em são ignorados durante a análise da cadeia de caracteres.All extra white-space characters not specified in the matched element in formats are ignored when parsing the string.
None Indica que o espaço em branco adicional não é permitido em input.Indicates that additional white space is not permitted in input. O espaço em branco deve aparecer exatamente como especificado em um elemento formats específico de para que ocorra uma correspondência.White space must appear exactly as specified in a particular element of formats for a match to occur. Este é o comportamento padrão.This is the default behavior.
RoundtripKind Não tem efeito porque a DateTimeOffset estrutura não inclui uma Kind propriedade.Has no effect because the DateTimeOffset structure does not include a Kind property.

Aplica-se a