DateTime.TryParse Método

Definição

Converte a representação de cadeia de caracteres especificada de uma data e hora no equivalente de DateTime e retorna um valor que indica se a conversão foi bem-sucedida.

Sobrecargas

TryParse(ReadOnlySpan<Char>, DateTime)

Converte o intervalo de caracteres especificado de uma data e hora no equivalente de DateTime e retorna um valor que indica se a conversão foi bem-sucedida.

TryParse(String, DateTime)

Converte a representação de cadeia de caracteres especificada de uma data e hora no equivalente de DateTime e retorna um valor que indica se a conversão foi bem-sucedida.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Tenta analisar um intervalo de caracteres em um valor.

TryParse(String, IFormatProvider, DateTime)

Tenta analisar uma cadeia de caracteres em um valor.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Converte a representação de cadeia de caracteres especificada de uma data e hora no equivalente de DateTime usando as informações de formato específicas da cultura e estilo de formatação especificados e retorna um valor que indica se a conversão foi bem-sucedida.

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

Converte a representação de intervalo de uma data e hora no equivalente de DateTime usando as informações de formato específicas da cultura e o estilo de formatação especificados e retorna um valor que indica se a conversão foi bem-sucedida.

Comentários

Importante

As eras nos calendários japoneses se baseiam no reinado do Imperador e, portanto, estão sujeitas a alterações. Por exemplo, 1º de maio de 2019 marcou o início da era Reiwa no JapaneseCalendar e no JapaneseLunisolarCalendar. Tal alteração de eras afeta todos os aplicativos que usam esses calendários. Para obter mais informações e determinar se seus aplicativos são afetados, consulte Manipulando uma nova era no calendário japonês no .NET. Para obter informações sobre como testar seus aplicativos em sistemas Windows para garantir sua preparação para a alteração da era, consulte Preparar seu aplicativo para a alteração da era japonesa. Para recursos no .NET que dão suporte a calendários com várias eras e para práticas recomendadas ao trabalhar com calendários que dão suporte a várias eras, consulte Trabalhando com eras.

TryParse(ReadOnlySpan<Char>, DateTime)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Converte o intervalo de caracteres especificado de uma data e hora no equivalente de DateTime e retorna um valor que indica se a conversão foi bem-sucedida.

public:
 static bool TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Parâmetros

s
ReadOnlySpan<Char>

Uma cadeia de caracteres contendo uma data e hora a ser convertida.

result
DateTime

Quando esse método retorna, contém o DateTime valor equivalente à data e hora contidas em s, se a conversão foi bem-sucedida ou DateTime.MinValue se a conversão falhou. A conversão falhará se o parâmetro s for null, for uma cadeia de caracteres vazia ("") ou não contiver uma representação de cadeia de caracteres válida de uma data e hora. Este parâmetro é passado não inicializado.

Retornos

true caso o parâmetro s tenha sido convertido com êxito; do contrário, false.

Aplica-se a

TryParse(String, DateTime)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Converte a representação de cadeia de caracteres especificada de uma data e hora no equivalente de DateTime e retorna um valor que indica se a conversão foi bem-sucedida.

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse (string s, out DateTime result);
public static bool TryParse (string? s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Parâmetros

s
String

Uma cadeia de caracteres contendo uma data e hora a ser convertida.

result
DateTime

Quando esse método retorna, contém o DateTime valor equivalente à data e hora contidas em s, se a conversão foi bem-sucedida ou DateTime.MinValue se a conversão falhou. A conversão falhará se o parâmetro s for null, for uma cadeia de caracteres vazia ("") ou não contiver uma representação de cadeia de caracteres válida de uma data e hora. Este parâmetro é passado não inicializado.

Retornos

true caso o parâmetro s tenha sido convertido com êxito; do contrário, false.

Exemplos

O exemplo a seguir passa várias cadeias de caracteres de data e hora para o DateTime.TryParse(String, DateTime) método .

using namespace System;
using namespace System::Globalization;

void main()
{
   array<String^>^ dateStrings = { "05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", 
                                   "2009-05-01T14:57:32.8375298-04:00", 
                                    "5/01/2008 14:57:32.80 -07:00", 
                                    "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                                    "Fri, 15 May 2009 20:10:57 GMT" };
   DateTime dateValue;

   Console::WriteLine("Attempting to parse strings using {0} culture.", 
                     CultureInfo::CurrentCulture->Name);
   for each (String^ dateString in dateStrings)
   {
      if (DateTime::TryParse(dateString, dateValue)) 
         Console::WriteLine("  Converted '{0}' to {1} ({2}).", dateString, 
                           dateValue, dateValue.Kind);
      else
         Console::WriteLine("  Unable to parse '{0}'.", dateString);
   }
}
// The example displays the following output: 
//    Attempting to parse strings using en-US culture. 
//       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified). 
//       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local). 
//       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local). 
//       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified). 
//       Unable to parse '16-05-2009 1:00:32 PM'. 
//       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                              "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                              "5/01/2008 14:57:32.80 -07:00",
                              "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                              "Fri, 15 May 2009 20:10:57 GMT" };
      DateTime dateValue;

      Console.WriteLine("Attempting to parse strings using {0} culture.",
                        CultureInfo.CurrentCulture.Name);
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParse(dateString, out dateValue))
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString,
                              dateValue, dateValue.Kind);
         else
            Console.WriteLine("  Unable to parse '{0}'.", dateString);
      }
   }
}
// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
open System
open System.Globalization

let dateStrings = 
    [ "05/01/2009 14:57:32.8"; "2009-05-01 14:57:32.8"
      "2009-05-01T14:57:32.8375298-04:00"; "5/01/2008"
      "5/01/2008 14:57:32.80 -07:00"
      "1 May 2008 2:57:32.8 PM"; "16-05-2009 1:00:32 PM"
      "Fri, 15 May 2009 20:10:57 GMT" ]

printfn $"Attempting to parse strings using {CultureInfo.CurrentCulture.Name} culture."
for dateString in dateStrings do
    match DateTime.TryParse dateString with
    | true, dateValue ->
        printfn $"  Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"  Unable to parse '{dateString}'."


// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                                     "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                                     "5/01/2008 14:57:32.80 -07:00",
                                     "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                                     "Fri, 15 May 2009 20:10:57 GMT"}
      Dim dateValue As Date
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", _
                        CultureInfo.CurrentCulture.Name)
      For Each dateString As String In dateStrings
         If Date.TryParse(dateString, dateValue) Then
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, _
                              dateValue, dateValue.Kind)
         Else
            Console.WriteLine("  Unable to parse '{0}'.", dateString)
         End If
      Next
   End Sub
End Module
' The example displays output like the following:
'    Attempting to parse strings using en-US culture.
'      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
'      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
'      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'      Unable to parse '16-05-2009 1:00:32 PM'.
'      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

Comentários

O DateTime.TryParse(String, DateTime) método é semelhante ao DateTime.Parse(String) método , exceto que o TryParse(String, DateTime) método não gera uma exceção se a conversão falhar.

A cadeia de caracteres s é analisada usando informações de formatação no objeto atual DateTimeFormatInfo , que é fornecido implicitamente pela cultura atual.

Esse método tenta ignorar dados não reconhecidos, se possível, e preenche informações de mês, dia e ano ausentes com a data atual. Se s contiver apenas uma data e nenhuma hora, esse método pressupõe que a hora seja 12:00 meia-noite. Se s incluir um componente de data com um ano de dois dígitos, ele será convertido em um ano no calendário atual da cultura atual com base no valor da Calendar.TwoDigitYearMax propriedade. Qualquer caractere de espaço em branco à esquerda, interno ou à direita em s é ignorado. A data e a hora podem ser agrupadas com um par de caracteres DE SINAL NUMÉRICO à esquerda e à direita ('#', U+0023) e podem ser seguidos com um ou mais caracteres NULL (U+0000).

Como o DateTime.TryParse(String, DateTime) método tenta analisar a representação de cadeia de caracteres de uma data e hora usando as regras de formatação da cultura atual, tentar analisar uma cadeia de caracteres específica entre diferentes culturas pode falhar ou retornar resultados diferentes. Se um formato específico de data e hora for analisado em diferentes localidades, use o DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método ou uma das sobrecargas do TryParseExact método e forneça um especificador de formato.

Se s for a representação de cadeia de caracteres s de um dia bissexto em um ano bissexto no calendário atual, o método analisará com êxito. Se s for a representação de cadeia de caracteres de um dia bissexto em um ano não bissexto no calendário atual da cultura atual, a operação de análise falhará e o método retornará false.

Se s não contiver informações de fuso horário, result conterá um DateTime valor cuja Kind propriedade é DateTimeKind.Unspecified quando o método retorna. Se a cadeia de caracteres a ser analisada contiver informações de fuso horário, result conterá um DateTime valor cuja Kind propriedade é DateTimeKind.Local quando o método retorna.

Notas aos Chamadores

A formatação é influenciada pelas propriedades do objeto atual DateTimeFormatInfo , que por padrão são derivadas do item Opções regionais e de linguagem no Painel de Controle. O TryParse método poderá falhar e retornar False inesperadamente se as propriedades atuais DateSeparator e TimeSeparator estiverem definidas com o mesmo valor.

Confira também

Aplica-se a

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Tenta analisar um intervalo de caracteres em um valor.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = ISpanParsable<DateTime>::TryParse;
public static bool TryParse (ReadOnlySpan<char> s, IFormatProvider? provider, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As DateTime) As Boolean

Parâmetros

s
ReadOnlySpan<Char>

O intervalo de caracteres a serem analisados.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas à cultura sobre s.

result
DateTime

Quando esse método retorna, contém o resultado da análise scom êxito ou um valor indefinido sobre a falha.

Retornos

true se s tiver sido analisado com êxito; caso contrário, false.

Aplica-se a

TryParse(String, IFormatProvider, DateTime)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Tenta analisar uma cadeia de caracteres em um valor.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = IParsable<DateTime>::TryParse;
public static bool TryParse (string? s, IFormatProvider? provider, out DateTime result);
static member TryParse : string * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As DateTime) As Boolean

Parâmetros

s
String

A cadeia de caracteres a ser analisada.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas à cultura sobre s.

result
DateTime

Quando esse método retorna, contém o resultado da análise s com êxito ou um valor indefinido em caso de falha.

Retornos

true se s tiver sido analisado com êxito; caso contrário, false.

Aplica-se a

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Converte a representação de cadeia de caracteres especificada de uma data e hora no equivalente de DateTime usando as informações de formato específicas da cultura e estilo de formatação especificados e retorna um valor que indica se a conversão foi bem-sucedida.

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

Parâmetros

s
String

Uma cadeia de caracteres contendo uma data e hora a ser convertida.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas da cultura sobre s.

styles
DateTimeStyles

Uma combinação bit a bit dos valores de enumeração que define como interpretar a data analisada em relação ao fuso horário atual ou à data atual. Um valor típico a ser especificado é None.

result
DateTime

Quando esse método retorna, contém o DateTime valor equivalente à data e hora contidas em s, se a conversão foi bem-sucedida ou DateTime.MinValue se a conversão falhou. A conversão falhará se o parâmetro s for null, for uma cadeia de caracteres vazia ("") ou não contiver uma representação de cadeia de caracteres válida de uma data e hora. Este parâmetro é passado não inicializado.

Retornos

true caso o parâmetro s tenha sido convertido com êxito; do contrário, false.

Exceções

styles não é um valor DateTimeStyles válido.

- ou -

styles contém uma combinação inválida de valores DateTimeStyles (por exemplo, AssumeLocal e AssumeUniversal).

provider é uma cultura neutra e não pode ser usado em uma operação de análise.

Exemplos

O exemplo a seguir ilustra o DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) método .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture;
      DateTimeStyles styles;
      DateTime dateResult;

      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.",
                           dateString);

      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Assume a date and time string formatted for the fr-FR culture is the local
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
open System
open System.Globalization

[<EntryPoint>]
let main _ =
    // Parse a date and time with no styles.
    let dateString = "03/01/2009 10:00 AM"
    let culture = CultureInfo.CreateSpecificCulture "en-US"
    let styles = DateTimeStyles.None
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ -> 
        printfn $"Unable to convert {dateString} to a date and time."

    // Parse the same date and time with the AssumeLocal style.
    let styles = DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}." 
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Parse a date and time that is assumed to be local.
    // This time is five hours behind UTC. The local system's time zone is
    // eight hours behind UTC.
    let dateString = "2009/03/01T10:00:00-5:00"
    let styles = DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Attempt to convert a string in improper ISO 8601 format.
    let dateString = "03/01/2009T10:00:00-5:00"
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Assume a date and time string formatted for the fr-FR culture is the local
    // time and convert it to UTC.
    let dateString = "2008-03-01 10:00"
    let culture = CultureInfo.CreateSpecificCulture "fr-FR"
    let styles = DateTimeStyles.AdjustToUniversal ||| DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}." 
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    0

// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateString As String
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim dateResult As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      If DateTime.TryParse(dateString, culture, styles, dateResult) Then
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
   End Sub
End Module
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Comentários

Para obter mais informações sobre essa API, consulte Comentários de API complementares para DateTime.TryParse.

Notas aos Chamadores

A formatação é influenciada pelas propriedades do objeto atual DateTimeFormatInfo , que é fornecido pelo provider parâmetro . O TryParse método poderá falhar e retornar False inesperadamente se as propriedades atuais DateSeparator e TimeSeparator estiverem definidas com o mesmo valor.

Confira também

Aplica-se a

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

Origem:
DateTime.cs
Origem:
DateTime.cs
Origem:
DateTime.cs

Converte a representação de intervalo de uma data e hora no equivalente de DateTime usando as informações de formato específicas da cultura e o estilo de formatação especificados e retorna um valor que indica se a conversão foi bem-sucedida.

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

Parâmetros

s
ReadOnlySpan<Char>

Um intervalo que contém os caracteres que representam a data e a hora a serem convertidas.

provider
IFormatProvider

Um objeto que fornece informações de formatação específicas da cultura sobre s.

styles
DateTimeStyles

Uma combinação bit a bit dos valores de enumeração que define como interpretar a data analisada em relação ao fuso horário atual ou à data atual. Um valor típico a ser especificado é None.

result
DateTime

Quando esse método retorna, contém o DateTime valor equivalente à data e hora contidas em s, se a conversão foi bem-sucedida ou DateTime.MinValue se a conversão falhou. A conversão falhará se o parâmetro s for null, for uma cadeia de caracteres vazia ("") ou não contiver uma representação de cadeia de caracteres válida de uma data e hora. Este parâmetro é passado não inicializado.

Retornos

true caso o parâmetro s tenha sido convertido com êxito; do contrário, false.

Aplica-se a