Udostępnij za pośrednictwem


DateTime.TryParse Metoda

Definicja

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

Przeciążenia

TryParse(ReadOnlySpan<Char>, DateTime)

Konwertuje określony zakres znaków daty i godziny na odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

TryParse(String, DateTime)

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Próbuje przeanalizować zakres znaków w wartości.

TryParse(String, IFormatProvider, DateTime)

Próbuje przeanalizować ciąg w wartość.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTime przy użyciu określonych informacji o formacie kultury i stylu formatowania oraz zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

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

Konwertuje reprezentację zakresu daty i godziny na odpowiednik DateTime przy użyciu określonych informacji o formacie kultury i stylu formatowania oraz zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

Uwagi

Ważne

Era w japońskich kalendarzach opiera się na panowaniu cesarza i dlatego oczekuje się, że się zmieni. Na przykład 1 maja 2019 r. oznaczyła początek ery Reiwa w JapaneseCalendar erze i JapaneseLunisolarCalendar. Taka zmiana ery wpływa na wszystkie aplikacje korzystające z tych kalendarzy. Aby uzyskać więcej informacji i określić, czy twoje aplikacje mają wpływ, zobacz Obsługa nowej ery w kalendarzu japońskim na platformie .NET. Aby uzyskać informacje na temat testowania aplikacji w systemach Windows w celu zapewnienia gotowości do zmiany epoki, zobacz Przygotowywanie aplikacji do japońskiej zmiany epoki. Aby uzyskać informacje o funkcjach na platformie .NET, które obsługują kalendarze z wieloma erami i najlepsze rozwiązania dotyczące pracy z kalendarzami obsługującymi wiele epok, zobacz Praca z erami.

TryParse(ReadOnlySpan<Char>, DateTime)

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Konwertuje określony zakres znaków daty i godziny na odpowiednik DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

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

Parametry

s
ReadOnlySpan<Char>

Ciąg zawierający datę i godzinę konwersji.

result
DateTime

Gdy ta metoda zwróci wartość równoważną dacie i godzinie zawartej DateTime w smetodzie , jeśli konwersja zakończyła się pomyślnie, lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr to null, jest pustym ciągiem (""), lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny. Ten parametr jest przekazywany jako niezainicjowany.

Zwraca

true s jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie false.

Dotyczy

TryParse(String, DateTime)

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTime i zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

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

Parametry

s
String

Ciąg zawierający datę i godzinę konwersji.

result
DateTime

Gdy ta metoda zwróci wartość równoważną dacie i godzinie zawartej DateTime w smetodzie , jeśli konwersja zakończyła się pomyślnie, lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr to null, jest pustym ciągiem (""), lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny. Ten parametr jest przekazywany jako niezainicjowany.

Zwraca

true s jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie false.

Przykłady

W poniższym przykładzie do metody jest przekazywana liczba ciągów DateTime.TryParse(String, DateTime) daty i godziny.

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).

Uwagi

Metoda jest podobna DateTime.TryParse(String, DateTime) do DateTime.Parse(String) metody, z tą różnicą, że TryParse(String, DateTime) metoda nie zgłasza wyjątku w przypadku niepowodzenia konwersji.

Ciąg s jest analizowany przy użyciu informacji formatowania w bieżącym DateTimeFormatInfo obiekcie, który jest dostarczany niejawnie przez bieżącą kulturę.

Ta metoda próbuje zignorować nierozpoznane dane, jeśli to możliwe, i wypełnia brakujące informacje o miesiącu, dniu i roku z bieżącą datą. Jeśli s zawiera tylko datę i godzinę, ta metoda zakłada, że godzina to 12:00 północ. Jeśli s zawiera składnik daty z dwucyfrowym rokiem, jest konwertowany na rok w bieżącym kalendarzu kultury na podstawie wartości Calendar.TwoDigitYearMax właściwości. Dowolny znak wiodącego, wewnętrznego lub końcowego odstępu w obiekcie s jest ignorowany. Datę i godzinę można wyjąć w nawiasach z kilkoma wiodącymi i końcowymi znakami ZNAKU NUMERU ('#', U+0023) i można je prowadzić z co najmniej jednym znakiem NULL (U+0000).

DateTime.TryParse(String, DateTime) Ponieważ metoda próbuje przeanalizować reprezentację ciągu daty i godziny przy użyciu reguł formatowania bieżącej kultury, próba przeanalizowana określonego ciągu w różnych kulturach może zakończyć się niepowodzeniem lub zwrócić różne wyniki. Jeśli określony format daty i godziny zostanie przeanalizowany w różnych ustawieniach regionalnych, użyj DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metody lub jednego z przeciążeń TryParseExact metody i podaj specyfikator formatu.

Jeśli s jest ciągiem reprezentującym dzień przestępny w roku przestępnym w bieżącym kalendarzu, metoda s analizuje się pomyślnie. Jeśli s jest ciągiem reprezentacją dnia przestępnego w roku nieskończym w bieżącym kalendarzu kultury, operacja analizy kończy się niepowodzeniem, a metoda zwraca falsewartość .

Jeśli s nie zawiera informacji o strefie czasowej, result zawiera wartość, której Kind właściwość jest DateTimeKind.Unspecified zwracana przez metodęDateTime. Jeśli ciąg, który ma zostać przeanalizowany, zawiera informacje o strefie czasowej, result zawiera DateTime wartość, której Kind właściwość ma wartość DateTimeKind.Local , gdy metoda zwraca.

Uwagi dotyczące wywoływania

Formatowanie ma wpływ na właściwości bieżącego DateTimeFormatInfo obiektu, które domyślnie pochodzą z elementu Opcje regionalne i językowe w Panelu sterowania. Metoda TryParse może nieoczekiwanie zakończyć się niepowodzeniem i zwrócić, False jeśli bieżąca DateSeparator i TimeSeparator właściwości są ustawione na tę samą wartość.

Zobacz też

Dotyczy

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Próbuje przeanalizować zakres znaków w wartości.

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

Parametry

s
ReadOnlySpan<Char>

Zakres znaków do przeanalizowania.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące selementu .

result
DateTime

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania swartości lub niezdefiniowanej wartości w przypadku niepowodzenia.

Zwraca

true jeśli s został pomyślnie przeanalizowany; w przeciwnym razie false.

Dotyczy

TryParse(String, IFormatProvider, DateTime)

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Próbuje przeanalizować ciąg w wartość.

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

Parametry

s
String

Ciąg do analizy.

provider
IFormatProvider

Obiekt, który udostępnia informacje o formatowaniu specyficznym dla kultury dotyczące selementu .

result
DateTime

Gdy ta metoda zostanie zwrócona, zawiera wynik pomyślnego analizowania s lub niezdefiniowanej wartości po awarii.

Zwraca

true jeśli s został pomyślnie przeanalizowany; w przeciwnym razie false.

Dotyczy

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTime przy użyciu określonych informacji o formacie kultury i stylu formatowania oraz zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

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

Parametry

s
String

Ciąg zawierający datę i godzinę konwersji.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia, która definiuje sposób interpretowania analizowanej daty w odniesieniu do bieżącej strefy czasowej lub bieżącej daty. Typową wartością do określenia jest None.

result
DateTime

Gdy ta metoda zwróci wartość równoważną dacie i godzinie zawartej DateTime w smetodzie , jeśli konwersja zakończyła się pomyślnie, lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr to null, jest pustym ciągiem (""), lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny. Ten parametr jest przekazywany jako niezainicjowany.

Zwraca

true s jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie false.

Wyjątki

styles jest nieprawidłową DateTimeStyles wartością.

-lub-

styles zawiera nieprawidłową kombinację DateTimeStyles wartości (na przykład i AssumeLocalAssumeUniversal).

provider jest kulturą neutralną i nie można jej używać w operacji analizowania.

Przykłady

Poniższy przykład ilustruje metodę DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) .

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.

Uwagi

Aby uzyskać więcej informacji na temat tego interfejsu API, zobacz Uwagi dotyczące dodatkowego interfejsu API dla elementu DateTime.TryParse.

Uwagi dotyczące wywoływania

Formatowanie ma wpływ na właściwości bieżącego DateTimeFormatInfo obiektu, który jest dostarczany przez provider parametr . Metoda TryParse może nieoczekiwanie zakończyć się niepowodzeniem i zwrócić, False jeśli bieżąca DateSeparator i TimeSeparator właściwości są ustawione na tę samą wartość.

Zobacz też

Dotyczy

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

Źródło:
DateTime.cs
Źródło:
DateTime.cs
Źródło:
DateTime.cs

Konwertuje reprezentację zakresu daty i godziny na odpowiednik DateTime przy użyciu określonych informacji o formacie kultury i stylu formatowania oraz zwraca wartość wskazującą, czy konwersja zakończyła się pomyślnie.

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

Parametry

s
ReadOnlySpan<Char>

Zakres zawierający znaki reprezentujące datę i godzinę konwersji.

provider
IFormatProvider

Obiekt, który dostarcza informacje o formatowaniu specyficznym dla kultury.s

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia, która definiuje sposób interpretowania analizowanej daty w odniesieniu do bieżącej strefy czasowej lub bieżącej daty. Typową wartością do określenia jest None.

result
DateTime

Gdy ta metoda zwróci wartość równoważną dacie i godzinie zawartej DateTime w smetodzie , jeśli konwersja zakończyła się pomyślnie, lub DateTime.MinValue , jeśli konwersja nie powiodła się. Konwersja kończy się niepowodzeniem, jeśli s parametr to null, jest pustym ciągiem (""), lub nie zawiera prawidłowej reprezentacji ciągu daty i godziny. Ten parametr jest przekazywany jako niezainicjowany.

Zwraca

true s jeśli parametr został pomyślnie przekonwertowany; w przeciwnym razie false.

Dotyczy