DateTime.TryParse Methode

Definition

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in das DateTime entsprechende Datum und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

Überlädt

Name Beschreibung
TryParse(ReadOnlySpan<Char>, DateTime)

Konvertiert die angegebene Zeichenspanne eines Datums und einer Uhrzeit in seine DateTime Entsprechung und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(String, DateTime)

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in das DateTime entsprechende Datum und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.

TryParse(String, IFormatProvider, DateTime)

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in seine DateTime Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen und Formatierungsformatvorlage und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Wandelt die Spannweitendarstellung eines Datums und einer Uhrzeit mithilfe der angegebenen kulturspezifischen Formatinformationen und Formatierungsformatvorlage in ein DateTime entsprechendes Format um und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

Hinweise

Important

Ären in den japanischen Kalendern basieren auf der Herrschaft des Kaisers und werden daher voraussichtlich wechseln. Beispielsweise markierte der 1. Mai 2019 den Anfang der Reiwa-Ära in der JapaneseCalendar und JapaneseLunisolarCalendar. Eine solche Änderung des Zeitalters wirkt sich auf alle Anwendungen aus, die diese Kalender verwenden. Unter Handling a new era in the Japanese calendar in .NET (Umgang mit einem neuen Zeitabschnitt im japanischen Kalender in .NET) finden Sie weitere Informationen und wie Sie bestimmen können, ob Ihre Anwendungen ebenfalls betroffen sind. Informationen zum Testen Ihrer Anwendungen auf Windows-Systemen, um ihre Bereitschaft für die Änderung der Ära sicherzustellen, finden Sie unter "Vorbereiten Ihrer Anwendung für die Änderung im japanischen Zeitalter". Features in .NET, die Kalender mit mehreren Epochen unterstützen und bewährte Methoden beim Arbeiten mit Kalendern, die mehrere Epochen unterstützen, finden Sie unter Arbeiten mit Eras.

TryParse(ReadOnlySpan<Char>, DateTime)

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Konvertiert die angegebene Zeichenspanne eines Datums und einer Uhrzeit in seine DateTime Entsprechung und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

s
ReadOnlySpan<Char>

Eine Zeichenfolge, die ein Datum und eine Uhrzeit enthält, die konvertiert werden soll.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält sie den DateTime Wert, der dem Datum und der Uhrzeit entspricht, das in s, wenn die Konvertierung erfolgreich war, oder DateTime.MinValue , wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s Parameter eine leere Zeichenfolge ("") ist nulloder keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit enthält. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn der s Parameter erfolgreich konvertiert wurde; andernfalls false.

Gilt für:

TryParse(String, DateTime)

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in das DateTime entsprechende Datum und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

s
String

Eine Zeichenfolge, die ein Datum und eine Uhrzeit enthält, die konvertiert werden soll.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält sie den DateTime Wert, der dem Datum und der Uhrzeit entspricht, das in s, wenn die Konvertierung erfolgreich war, oder DateTime.MinValue , wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s Parameter eine leere Zeichenfolge ("") ist nulloder keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit enthält. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn der s Parameter erfolgreich konvertiert wurde; andernfalls false.

Beispiele

Im folgenden Beispiel wird eine Anzahl von Datums- und Uhrzeitzeichenfolgen an die DateTime.TryParse(String, DateTime) Methode übergeben.

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

Hinweise

Die DateTime.TryParse(String, DateTime) Methode ähnelt der DateTime.Parse(String) Methode, mit der Ausnahme, dass die TryParse(String, DateTime) Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt.

Die Zeichenfolge s wird mithilfe von Formatierungsinformationen im aktuellen DateTimeFormatInfo Objekt analysiert, die implizit von der aktuellen Kultur bereitgestellt werden.

Diese Methode versucht, nicht erkannte Daten nach Möglichkeit zu ignorieren und fehlende Monats-, Tages- und Jahresinformationen mit dem aktuellen Datum auszufüllen. Wenn s diese Methode nur ein Datum und keine Uhrzeit enthält, wird davon ausgegangen, dass die Uhrzeit 12:00 Uhr beträgt. Wenn s eine Datumskomponente mit einem zweistelligen Jahr enthalten ist, wird sie basierend auf dem Wert der Calendar.TwoDigitYearMax Eigenschaft in ein Jahr im aktuellen Kalender der aktuellen Kultur konvertiert. Alle führenden, inneren oder nachfolgenden Leerzeichen werden s ignoriert. Das Datum und die Uhrzeit können mit einem Paar führender und nachgestellter ZIFFERNZEICHEN (‚#‘, U+0023) gekoppelt werden und können mit einem oder mehreren NULL-Zeichen (U+0000) nachgestellt werden.

Da die DateTime.TryParse(String, DateTime) Methode versucht, die Zeichenfolgendarstellung eines Datums und einer Uhrzeit mithilfe der Formatierungsregeln der aktuellen Kultur zu analysieren, kann der Versuch, eine bestimmte Zeichenfolge in verschiedenen Kulturen zu analysieren, entweder fehlschlagen oder unterschiedliche Ergebnisse zurückgeben. Wenn ein bestimmtes Datums- und Uhrzeitformat in verschiedenen Gebietsschemas analysiert wird, verwenden Sie die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode oder eine der Überladungen der TryParseExact Methode, und stellen Sie einen Formatbezeichner bereit.

Wenn s die Zeichenfolge für einen Schalttag in einem Schaltjahr des aktuellen Kalenders ist, analysiert die Methode s erfolgreich. Ist s die Zeichenfolgendarstellung eines Schalttags in einem Nicht-Schaltjahr im aktuellen Kalender der aktuellen Kultur, schlägt der Analysevorgang fehl, und die Methode gibt zurück false.

Wenn s keine Zeitzoneninformationen enthalten sind, enthält sie einen result Wert, DateTime dessen Kind Eigenschaft beim Zurückgeben der Methode liegtDateTimeKind.Unspecified. Wenn die zu analysierende Zeichenfolge Zeitzoneninformationen enthält, enthält sie einen result Wert, DateTime dessen Kind Eigenschaft beim Zurückgeben der Methode liegtDateTimeKind.Local.

Hinweise für Aufrufer

Die Formatierung wird durch Eigenschaften des aktuellen DateTimeFormatInfo Objekts beeinflusst, die standardmäßig vom Element " Regions- und Sprachoptionen " in der Systemsteuerung abgeleitet werden. Die TryParse Methode kann unerwartet fehlschlagen und zurückgeben False , wenn die aktuellen DateSeparator Und TimeSeparator Eigenschaften auf denselben Wert festgelegt sind.

Weitere Informationen

Gilt für:

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Versucht, einen Bereich von Zeichen in einen Wert zu analysieren.

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

Parameter

s
ReadOnlySpan<Char>

Die Spanne der zu analysierenden Zeichen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält das Ergebnis der erfolgreichen Analyse oder eines nicht definierten Werts sfür fehler.

Gibt zurück

truewenn s erfolgreich analysiert wurde; andernfalls . false

Gilt für:

TryParse(String, IFormatProvider, DateTime)

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Versucht, eine Zeichenfolge in einen Wert zu analysieren.

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

Parameter

s
String

Die zu analysierende Zeichenfolge.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält das Ergebnis einer erfolgreichen Analyse oder eines nicht definierten Werts s für fehler.

Gibt zurück

truewenn s erfolgreich analysiert wurde; andernfalls . false

Gilt für:

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in seine DateTime Entsprechung mithilfe der angegebenen kulturspezifischen Formatinformationen und Formatierungsformatvorlage und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

s
String

Eine Zeichenfolge, die ein Datum und eine Uhrzeit enthält, die konvertiert werden soll.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

styles
DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die definieren, wie das analysierte Datum in Bezug auf die aktuelle Zeitzone oder das aktuelle Datum interpretiert wird. Ein typischer Wert, der angegeben werden soll, ist None.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält sie den DateTime Wert, der dem Datum und der Uhrzeit entspricht, das in s, wenn die Konvertierung erfolgreich war, oder DateTime.MinValue , wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s Parameter eine leere Zeichenfolge ("") ist nulloder keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit enthält. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn der s Parameter erfolgreich konvertiert wurde; andernfalls false.

Ausnahmen

styles ist kein gültiger DateTimeStyles Wert.

-oder-

styles enthält eine ungültige Kombination von DateTimeStyles Werten (z. B. beide AssumeLocal und AssumeUniversal).

provider ist eine neutrale Kultur und kann nicht in einem Analysevorgang verwendet werden.

Beispiele

Das folgende Beispiel veranschaulicht die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode.

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.

Hinweise

Die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode analysiert eine Zeichenfolge, die Datums-, Uhrzeit- und Zeitzoneninformationen enthalten kann. Es ähnelt der DateTime.Parse(String, IFormatProvider, DateTimeStyles) Methode, mit der Ausnahme, dass die DateTime.TryParse(String, DateTime) Methode keine Ausnahme auslöst, wenn die Konvertierung fehlschlägt.

Diese Methode versucht, nicht erkannte Daten zu ignorieren und die Eingabezeichenfolge (s) vollständig zu analysieren. Wenn s eine Uhrzeit, aber kein Datum enthält, ersetzt die Methode standardmäßig das aktuelle Datum. Wenn styles das NoCurrentDateDefault-Kennzeichen enthält, ersetzt sie DateTime.Date.MinValue. Wenn s ein Datum, aber keine Uhrzeit enthalten ist, wird Mitternacht um 12:00 Uhr als Standardzeit verwendet. Wenn ein Datum vorhanden ist, aber seine Jahreskomponente nur aus zwei Ziffern besteht, wird sie basierend auf dem Wert der provider Eigenschaft in ein Jahr im aktuellen Kalender des Calendar.TwoDigitYearMax Parameters konvertiert. Alle führenden, zentralen oder hinteren Leerzeichen in s werden ignoriert. Das Datum und die Uhrzeit können mit einem Paar führender und nachgestellter ZIFFERNZEICHEN (‚#‘, U+0023) gekoppelt werden und können mit einem oder mehreren NULL-Zeichen (U+0000) nachgestellt werden.

Spezifische gültige Formate für Datums- und Uhrzeitelemente sowie die Namen und Symbole, die in Datums- und Uhrzeitangaben verwendet werden, werden durch den provider Parameter definiert, der eine der folgenden Sein kann:

Wenn provider gleich null ist, wird die aktuelle Kultur verwendet.

Wenn s die Zeichenfolge für einen Schalttag in einem Schaltjahr des aktuellen Kalenders ist, analysiert die Methode s erfolgreich. Wenn s die Zeichenfolge für einen Schalttag in einem Nicht-Schaltjahr im aktuellen Kalender von provider ist, schlägt die Parse-Operation fehl und die Methode gibt false zurück.

Der styles Parameter definiert die genaue Interpretation der analysierten Zeichenfolge und wie der Analysevorgang damit umgeht. Es kann sich um ein oder mehrere Elemente der DateTimeStyles Enumeration, wie in der folgenden Tabelle beschrieben, sein.

DateTimeStyles-Mitglied Description
AdjustToUniversal Analysiert s und konvertiert es, falls erforderlich, in UTC. Wenn s ein Zeitzonenoffset enthält oder s keine Zeitzoneninformationen enthält, aber styles das DateTimeStyles.AssumeLocal-Flag enthält, analysiert die Methode die Zeichenfolge, ruft ToUniversalTime auf, um den zurückgegebenen DateTime-Wert in UTC zu konvertieren, und legt die Kind-Eigenschaft auf DateTimeKind.Utc fest. Wenn s angegeben wird, dass es UTC darstellt oder keine s Zeitzoneninformationen enthält, aber styles das DateTimeStyles.AssumeUniversal Flag enthält, analysiert die Methode die Zeichenfolge, führt keine Zeitzonenkonvertierung für den zurückgegebenen DateTime Wert durch und legt die Kind Eigenschaft auf DateTimeKind.Utc. In allen anderen Fällen hat das Flag keine Auswirkung.
AllowInnerWhite Obwohl gültig, wird dieser Wert ignoriert. Innerer Leerraum ist in den Datums- und Uhrzeitelementen von s zulässig.
AllowLeadingWhite Obwohl gültig, wird dieser Wert ignoriert. Führende Leerzeichen sind in den Datums- und Zeitelementen von s erlaubt.
AllowTrailingWhite Obwohl gültig, wird dieser Wert ignoriert. Nachfolgende Leerzeichen sind in den Datums- und Zeitelementen von s erlaubt.
AllowWhiteSpaces Gibt an, dass s führende, innere und nachfolgende Leerzeichen enthalten können. Dies ist das Standardverhalten. Es kann nicht durch die Angabe eines restriktiveren DateTimeStyles Aufzählungswertes wie z. B. DateTimeStyles.None überschrieben werden.
AssumeLocal Gibt an, dass bei s fehlenden Zeitzoneninformationen davon ausgegangen wird, dass sie eine Ortszeit darstellt. Sofern das DateTimeStyles.AdjustToUniversal-Flag nicht gegeben ist, wird die Kind-Eigenschaft des zurückgegebenen DateTime-Werts auf DateTimeKind.Local gesetzt.
AssumeUniversal Gibt an, dass wenn s keine Zeitzoneninformationen enthält, angenommen wird, dass diese UTC darstellen. Sofern das DateTimeStyles.AdjustToUniversal Flag nicht vorhanden ist, konvertiert die Methode den zurückgegebenen DateTime Wert von UTC in ortszeit und legt dessen Kind Eigenschaft auf DateTimeKind.Local.
None Obwohl gültig, wird dieser Wert ignoriert.
RoundtripKind Bei Zeichenfolgen, die Zeitzoneninformationen enthalten, wird versucht, die Umwandlung einer Datums- und Uhrzeitzeichenfolge in einen DateTime Wert zu verhindern, dessen Kind-Eigenschaft auf DateTimeKind.Local gesetzt ist. In der Regel wird eine solche Zeichenfolge erstellt, indem die DateTime.ToString(String)-Methode mit den Standardformatbezeichnern "o", "r" oder "u" aufgerufen wird.

Wenn s keine Zeitzoneninformationen enthält, gibt die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode einen DateTime Wert zurück, dessen Kind Eigenschaft DateTimeKind.Unspecified ist, es sei denn, ein styles-Flag gibt etwas anderes an. Wenn s Informationen zur Zeitzone oder zum Zeitzonenversatz enthält, führt die DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) Methode alle erforderlichen Zeitkonvertierungen durch und gibt eines der folgenden Ergebnisse zurück.

Dieses Verhalten kann mithilfe des DateTimeStyles.RoundtripKind Flags überschrieben werden.

Angepasste Gebietsschemata parsen

Wenn Sie eine für eine benutzerdefinierte Kultur generierte Datums- und Uhrzeitzeichenfolge analysieren, verwenden Sie die TryParseExact Methode anstelle der TryParse Methode, um die Wahrscheinlichkeit zu verbessern, dass der Analysevorgang erfolgreich ist. Eine benutzerdefinierte Kultur-Datums- und Uhrzeitzeichenfolge kann kompliziert und schwierig zu analysieren sein. Die TryParse Methode versucht, eine Zeichenfolge mit mehreren impliziten Analysemustern zu analysieren, die möglicherweise fehlschlagen. Im Gegensatz dazu müssen Sie bei der TryParseExact-Methode explizit ein oder mehrere exakte Parse-Muster angeben, die wahrscheinlich zum Erfolg führen werden.

Weitere Informationen über angepasste Gebietsschemata finden Sie unter der System.Globalization.CultureAndRegionInfoBuilder Klasse.

Hinweise für Aufrufer

Die Formatierung wird durch Eigenschaften des aktuellen DateTimeFormatInfo Objekts beeinflusst, das vom provider Parameter bereitgestellt wird. Die TryParse Methode kann unerwartet fehlschlagen und zurückgeben False , wenn die aktuellen DateSeparator Und TimeSeparator Eigenschaften auf denselben Wert festgelegt sind.

Weitere Informationen

Gilt für:

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

Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs
Quelle:
DateTime.cs

Wandelt die Spannweitendarstellung eines Datums und einer Uhrzeit mithilfe der angegebenen kulturspezifischen Formatinformationen und Formatierungsformatvorlage in ein DateTime entsprechendes Format um und gibt einen Wert zurück, der angibt, ob die Konvertierung erfolgreich war.

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

Parameter

s
ReadOnlySpan<Char>

Eine Spanne, die die Zeichen enthält, die das zu konvertierende Datum und die Uhrzeit darstellen.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen zu s.

styles
DateTimeStyles

Eine bitweise Kombination von Enumerationswerten, die definieren, wie das analysierte Datum in Bezug auf die aktuelle Zeitzone oder das aktuelle Datum interpretiert wird. Ein typischer Wert, der angegeben werden soll, ist None.

result
DateTime

Wenn diese Methode zurückgegeben wird, enthält sie den DateTime Wert, der dem Datum und der Uhrzeit entspricht, das in s, wenn die Konvertierung erfolgreich war, oder DateTime.MinValue , wenn die Konvertierung fehlgeschlagen ist. Die Konvertierung schlägt fehl, wenn der s Parameter eine leere Zeichenfolge ("") ist nulloder keine gültige Zeichenfolgendarstellung eines Datums und einer Uhrzeit enthält. Dieser Parameter wird nicht initialisiert übergeben.

Gibt zurück

true wenn der s Parameter erfolgreich konvertiert wurde; andernfalls false.

Gilt für: