DateTime.TryParseExact Metódus

Definíció

Egy dátum és idő megadott sztring-ábrázolását konvertálja annak megfelelőjeként DateTime . A sztring-ábrázolás formátumának pontosan meg kell egyeznie egy megadott formátummal. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

Túlterhelések

Name Description
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Egy dátum és idő megadott span-ábrázolását a megadott formátum, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátummal. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

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

Egy dátum és idő megadott karaktertartományát a megfelelő értékké DateTime alakítja, és egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Egy dátum és idő megadott sztringképét a megadott formátum, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátummal. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Egy dátum és idő megadott sztring-ábrázolását a megadott formátumok, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátumok legalább egyikével. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

Megjegyzések

Important

A japán naptárak korszakai a császár uralkodásán alapulnak, ezért várhatóan megváltoznak. 2019. május 1-jén például a Reiwa-korszak kezdetét jelentette JapaneseCalendar és JapaneseLunisolarCalendar. Az ilyen korszakváltás minden olyan alkalmazást érint, amely ezeket a naptárakat használja. További információkért és annak megállapításához, hogy az alkalmazások érintettek-e, olvassa el az Új korszak kezelése a japán naptárban a .NET-ben című témakört. Az alkalmazások windowsos rendszereken való tesztelésével kapcsolatos információkért, amelyek biztosítják, hogy felkészültek legyenek a korszakváltásra, olvassa el az alkalmazás előkészítése a japán korszakváltásra című témakört. A több korszakot támogató naptárakat támogató .NET-funkciókért és a több korszakot támogató naptárak használatakor ajánlott eljárásokért lásd: Korszakok használata.

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

Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs

Egy dátum és idő megadott span-ábrázolását a megadott formátum, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátummal. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

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

Paraméterek

s
ReadOnlySpan<Char>

Az átalakítandó dátumot és időt képviselő karaktereket tartalmazó span.

format
ReadOnlySpan<Char>

A szükséges formátum.s

provider
IFormatProvider

Egy objektum, amely a kultúraspecifikus formázási sinformációkat tartalmazza.

style
DateTimeStyles

Egy vagy több számbavételi érték bitenkénti kombinációja, amely a megengedett formátumot sjelzi.

result
DateTime

Ha ez a metódus visszaadja, a DateTime dátummal és idővel segyenértékű értéket tartalmazza, ha az átalakítás sikeres volt, vagy a DateTime.MinValue értéket, ha az átalakítás sikertelen volt. Az átalakítás meghiúsul, ha a paraméter svagy format egy null üres sztring, vagy nem tartalmaz a megadott formatmintának megfelelő dátumot és időt. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

trueha s sikeresen konvertálták; ellenkező esetben. false

Kivételek

A hossz format 1, és nem tartozik a formátumválasztó karakterek DateTimeFormatInfoközé.

-vagy-

format nem tartalmaz érvényes egyéni formátummintát.

style érvénytelen DateTimeStyles érték.

-vagy-

style érvénytelen értékkombinációt DateTimeStyles tartalmaz (például mindkettőt AssumeLocal és AssumeUniversal).

A következőre érvényes:

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

Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs

Egy dátum és idő megadott karaktertartományát a megfelelő értékké DateTime alakítja, és egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

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

Paraméterek

s
ReadOnlySpan<Char>

Az elemezni kívánt sztringet tartalmazó span.

formats
String[]

A engedélyezett formátumainak tömbje s.

provider
IFormatProvider

Egy objektum, amely a kultúraspecifikus formázási sinformációkat tartalmazza.

style
DateTimeStyles

Az enumerálási értékek bitenkénti kombinációja, amely meghatározza az elemezt dátum értelmezését az aktuális időzónához vagy az aktuális dátumhoz képest. Egy jellemzően megadható érték a következő None: .

result
DateTime

Ha ez a metódus visszaadja, a DateTime dátummal és idővel segyenértékű értéket tartalmazza, ha az átalakítás sikeres volt, vagy a DateTime.MinValue értéket, ha az átalakítás sikertelen volt. Az átalakítás meghiúsul, ha a s paraméter nullEmptya dátum és az idő érvényes sztring-ábrázolását tartalmazza. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

trueha s sikeresen konvertálták; ellenkező esetben. false

Kivételek

Egy elem formats hossza 1, és nem tartozik a formátumjelölő karakterek DateTimeFormatInfoközé.

style érvénytelen DateTimeStyles érték.

-vagy-

style érvénytelen értékkombinációt DateTimeStyles tartalmaz (például mindkettőt AssumeLocal és AssumeUniversal).

A következőre érvényes:

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs

Egy dátum és idő megadott sztringképét a megadott formátum, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátummal. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

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

Paraméterek

s
String

Dátumot és időt tartalmazó sztring az átalakításhoz.

format
String

A szükséges formátum.s

provider
IFormatProvider

Egy objektum, amely a kultúraspecifikus formázási sinformációkat tartalmazza.

style
DateTimeStyles

Egy vagy több számbavételi érték bitenkénti kombinációja, amely a megengedett formátumot sjelzi.

result
DateTime

Ha ez a metódus visszaadja, a DateTime dátummal és idővel segyenértékű értéket tartalmazza, ha az átalakítás sikeres volt, vagy a DateTime.MinValue értéket, ha az átalakítás sikertelen volt. Az átalakítás meghiúsul, ha a paraméter svagy format egy null üres sztring, vagy nem tartalmaz a megadott formatmintának megfelelő dátumot és időt. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

trueha s sikeresen konvertálták; ellenkező esetben. false

Kivételek

A hossz format 1, és nem tartozik a formátumválasztó karakterek DateTimeFormatInfoközé.

-vagy-

format nem tartalmaz érvényes egyéni formátummintát.

style érvénytelen DateTimeStyles érték.

-vagy-

style érvénytelen értékkombinációt DateTimeStyles tartalmaz (például mindkettőt AssumeLocal és AssumeUniversal).

Példák

Az alábbi példa a metódust DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) mutatja be. Vegye figyelembe, hogy a "2009.05.01. 08:30" sztring nem elemezhető sikeresen, ha a paraméter egyenlőstyles, mert a DateTimeStyles.None kezdő szóközök nem engedélyezettekformat. Ezenkívül az "5/01/2009 09:00" sztring nem elemezhető sikeresen format az "MM/dd/yyyyyhh:mm" értékkel, mert a dátumsztring nem előzi meg a hónapszámot a kezdő nullával, ahogy format szükséges.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo enUS = new CultureInfo("en-US");
      string dateString;
      DateTime dateValue;

      // Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM";
      if (DateTime.TryParseExact(dateString, "g", enUS,
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "g", enUS,
                                 DateTimeStyles.AllowLeadingWhite, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS,
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS,
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00";
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
                              DateTimeStyles.AdjustToUniversal, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                     DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                 DateTimeStyles.RoundtripKind, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
   }
}
// The example displays the following output:
//    ' 5/01/2009 8:30 AM' is not in an acceptable format.
//    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
//    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
//    '5/01/2009 09:00' is not in an acceptable format.
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
open System
open System.Globalization

[<EntryPoint>]
let main _ =
    let enUS = CultureInfo "en-US"

    // Parse date with no style flags.
    let dateString = " 5/01/2009 8:30 AM"
    match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."              
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Use custom formats with M and MM.
    let dateString = "5/01/2009 09:00"
    match DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Parse a string with time zone information.
    let dateString = "05/01/2009 01:30:42 PM -05:00"
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Parse a string representing UTC.
    let dateString = "2008-06-11T16:11:20.0904778Z"
    match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    0

    // The example displays the following output:
    //    ' 5/01/2009 8:30 AM' is not in an acceptable format.
    //    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
    //    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
    //    '5/01/2009 09:00' is not in an acceptable format.
    //    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
    //    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
    //    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
    //    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim enUS As New CultureInfo("en-US") 
      Dim dateString As String
      Dim dateValue As Date
      
      ' Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM"
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.AllowLeadingWhite, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.AdjustToUniversal, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                            DateTimeStyles.RoundtripKind, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
   End Sub
End Module
' The example displays the following output:
'    ' 5/01/2009 8:30 AM' is not in an acceptable format.
'    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
'    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'    '5/01/2009 09:00' is not in an acceptable format.
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).

Megjegyzések

A DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metódus elemzi egy dátum sztringképét, amelynek a paraméter által format meghatározott formátumban kell lennie. Hasonló a DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) metódushoz, azzal a kivétellel, hogy a TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metódus nem ad kivételt, ha az átalakítás sikertelen.

A s paraméter tartalmazza az elemzés dátumát és idejét, és a format paraméter által meghatározott formátumban kell lennie. Ha a dátum-, idő- és időzóna-elemek szerepelnek a fájlban s, akkor a megadott formatsorrendben is meg kell jelenniük. Ha format időelem nélküli dátumot határoz meg, és az elemzési művelet sikeres, az eredményként kapott DateTime érték éjféli időponttal rendelkezik (00:00:00). Ha format dátumelem nélküli időpontot határoz meg, és az elemzési művelet sikeres, akkor az eredményként kapott DateTime értéknek alapértelmezés szerint dátumértéke DateTime.Now.Datevan, vagy a jelölőt is tartalmazó dátummal DateTime.MinValue.Datestyles rendelkezik DateTimeStyles.NoCurrentDateDefault . A style paraméter meghatározza, hogy a s paraméter tartalmazhat-e kezdő, belső vagy záró szóköz karaktereket.

Ha s nem tartalmaz időzóna-információt, a Kind visszaadott DateTime objektum tulajdonsága .DateTimeKind.Unspecified Ez a viselkedés megváltoztatható a DateTimeStyles.AssumeLocal jelölő használatával, amely egy DateTime olyan értéket ad vissza, amelynek Kind a tulajdonsága DateTimeKind.Local, vagy az DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags használatával, amely egy DateTime olyan értéket ad vissza, amelynek Kind a tulajdonsága.DateTimeKind.Utc Ha az s időzónaadatokat tartalmaz, az idő helyi idővé alakul, ha szükséges, és a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Localvan állítva: . Ez a viselkedés úgy módosítható, hogy a DateTimeStyles.RoundtripKind jelölővel nem konvertálja az egyezményes világidőt (UTC) helyi idővé, és a tulajdonságot a Kind következőre DateTimeKind.Utcállítja.

A format paraméter a paraméter várt formátumának s megfelelő mintát tartalmaz. A paraméter mintája format egy vagy több egyéni formátumjelölőből áll az Egyéni dátum és időformátum sztringek táblából, vagy egy szabványos formátumkijelölőből, amely egy előre definiált mintát azonosít a Standard Dátum és időformátum sztringek táblából.

Ha nem használ dátum- vagy időelválasztókat egyéni formátummintában, használja az invariáns kultúrát a provider paraméterhez és az egyes egyéni formátumkijelölők legszélesebb formájához. Ha például órákat szeretne megadni a mintában, adja meg a "HH" szélesebb űrlapot a "H" keskenyebb űrlap helyett.

Note

Ahelyett, hogy s az elemzési művelet egyetlen formátumának felelne meg, meghívhatja a DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) metódust, és több engedélyezett formátumot is megadhat. Ez nagyobb valószínűséggel teszi sikeressé az elemzési műveletet.

Az adott dátum- és időszimbólumokat és sztringeket (például a hét napjainak nevét egy adott nyelven) s a paraméter határozza meg, csakúgy, mint a szabványos formátumjelölő sztring pontos formátumát providers.format A provider paraméter az alábbiak bármelyike lehet:

Ha provider igen null, akkor a rendszer az CultureInfo aktuális kultúrának megfelelő objektumot használja.

A styles paraméter az enumerálás egy vagy több tagját DateTimeStyles tartalmazza, amelyek meghatározzák, hogy megjelenhet-e és hol nem format definiált s üres terület, és ez szabályozza az elemzési művelet pontos viselkedését. Az alábbi táblázat azt ismerteti, hogy az DateTimeStyles enumerálás egyes részei hogyan befolyásolják a TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metódus működését.

DateTimeStyles tagja Leírás
AdjustToUniversal s Elemzi és szükség esetén UTC-vé alakítja át. Ha s időzóna-eltolást tartalmaz, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeLocal jelölőt, akkor a metódus elemzi a sztringet, meghívja ToUniversalTime a visszaadott DateTime érték UTC értékre konvertálását, és beállítja a Kind tulajdonságot DateTimeKind.Utc. Ha s azt jelzi, hogy utc értéket jelöl, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeUniversal jelzőt, a metódus elemzi a sztringet, nem végez időzóna-átalakítást a visszaadott DateTime értéken, és a tulajdonságot a Kind következőre DateTimeKind.Utcállítja: . Minden más esetben a zászlónak nincs hatása.
AllowInnerWhite Azt adja meg, hogy a nem definiált format szabad terület jelenhet meg az egyes dátum- és időelemek között.
AllowLeadingWhite Azt adja meg, hogy a nem definiált format üres terület a következő elején sjelenhet meg:
AllowTrailingWhite Azt adja meg, hogy a nem definiált format üres terület megjelenjen a svégén.
AllowWhiteSpaces Megadja, hogy mely s szóközök tartalmazhatnak olyan kezdő, belső és záró szóközöket, amelyeket nem definiál a formatrendszer.
AssumeLocal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor a rendszer azt feltételezi, hogy egy helyi időpontot jelöl. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a Kind visszaadott DateTime érték tulajdonsága a következőre DateTimeKind.Localvan állítva: .
AssumeUniversal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor feltételezzük, hogy az UTC-t jelöli. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a metódus a visszaadott DateTime értéket UTC-ről helyi időpontra konvertálja, és a tulajdonságát a következőre KindállítjaDateTimeKind.Local: .
NoCurrentDateDefault Ha s dátumadatok nélküli időt tartalmaz, a visszatérési érték dátuma a következőre DateTime.MinValue.Datevan állítva: .
None A s paraméter az alapértelmezett értékekkel van elemezve. A jelen lévőn format kívül más szabad terület nem engedélyezett. Ha s nincs dátumösszetevő, a visszaadott DateTime érték dátuma 0001.01.01. Ha s nem tartalmaz időzóna-információt, a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Unspecifiedvan állítva: . Ha az időzóna információi meg vannak jelen, saz idő helyi időre lesz konvertálva, és a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Localvan állítva: .
RoundtripKind Az időzóna-adatokat tartalmazó sztringek esetében megkísérli megakadályozni az értékre való konvertálást DateTime , amelynek tulajdonsága Kind a következőre DateTimeKind.Localvan állítva. Ez a jelző elsősorban megakadályozza az UTC-időpontok helyi időpontra való konvertálását.

Megjegyzések a hívókhoz

A .NET Framework 4-ben a TryParseExact metódus false ad vissza, ha az elemezni kívánt sztring egy óra összetevőt és egy nem egyetértésben lévő AM/PM-tervezőt tartalmaz. A .NET Framework 3.5-ös és korábbi verzióiban a rendszer figyelmen kívül hagyja az AM/PM-tervezőt.

Lásd még

A következőre érvényes:

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs
Forrás:
DateTime.cs

Egy dátum és idő megadott sztring-ábrázolását a megadott formátumok, kultúraspecifikus formátumadatok és stílus használatával konvertálja DateTime annak megfelelővé. A sztring-ábrázolás formátumának pontosan meg kell egyeznie a megadott formátumok legalább egyikével. A metódus egy értéket ad vissza, amely jelzi, hogy az átalakítás sikeres volt-e.

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

Paraméterek

s
String

Egy sztring, amely dátumot és időt tartalmaz az átalakításhoz.

formats
String[]

A engedélyezett formátumainak tömbje s.

provider
IFormatProvider

Egy objektum, amely a kultúraspecifikus formátuminformációkat startalmazza.

style
DateTimeStyles

Az enumerálási értékek bitenkénti kombinációja, amely a megengedett formátumot sjelzi. Egy jellemzően megadható érték a következő None: .

result
DateTime

Ha ez a metódus visszaadja, a DateTime dátummal és idővel segyenértékű értéket tartalmazza, ha az átalakítás sikeres volt, vagy a DateTime.MinValue értéket, ha az átalakítás sikertelen volt. Az átalakítás meghiúsul, s ha formatsnull egy süres sztring egy elemeformats, vagy ha a formátum s nem pontosan az egyik formátummintázatban formatsmegadott. Ez a paraméter nem inicializálva lesz átadva.

Válaszok

trueha a s paraméter konvertálása sikeresen megtörtént; ellenkező esetben. false

Kivételek

Egy elem formats hossza 1, és nem tartozik a formátumjelölő karakterek DateTimeFormatInfoközé.

style érvénytelen DateTimeStyles érték.

-vagy-

style érvénytelen értékkombinációt DateTimeStyles tartalmaz (például mindkettőt AssumeLocal és AssumeUniversal).

Példák

Az alábbi példa a DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) metódus használatával biztosítja, hogy egy sztring több lehetséges formátumban is sikeresen elemezhető legyen.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm",
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
                              "5/1/2009 6:32:00", "05/01/2009 06:32",
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"};
      DateTime dateValue;

      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParseExact(dateString, formats,
                                    new CultureInfo("en-US"),
                                    DateTimeStyles.None,
                                    out dateValue))
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
open System
open System.Globalization

let formats= 
    [| "M/d/yyyy h:mm:ss tt"; "M/d/yyyy h:mm tt"
       "MM/dd/yyyy hh:mm:ss"; "M/d/yyyy h:mm:ss"
       "M/d/yyyy hh:mm tt"; "M/d/yyyy hh tt"
       "M/d/yyyy h:mm"; "M/d/yyyy h:mm"
       "MM/dd/yyyy hh:mm"; "M/dd/yyyy hh:mm" |]

let dateStrings = 
    [ "5/1/2009 6:32 PM"; "05/01/2009 6:32:05 PM"
      "5/1/2009 6:32:00"; "05/01/2009 06:32"
      "05/01/2009 06:32:00 PM"; "05/01/2009 06:32:00" ]

for dateString in dateStrings do
    match DateTime.TryParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue}."
    | _ ->
        printfn $"Unable to convert '{dateString}' to a date."


// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}
      Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
                                     "5/1/2009 6:32:00", "05/01/2009 06:32", _
                                     "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"} 

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         If Date.TryParseExact(dateString, formats, _
                               New CultureInfo("en-US"), _
                               DateTimeStyles.None, _
                               dateValue) Then
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End If                                               
      Next
   End Sub   
End Module
' The example displays the following output:
'       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
'       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.

Megjegyzések

A DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) metódus elemzi egy dátum sztringképét, amely megfelel a paraméterhez formats rendelt minták bármelyikének. Ez olyan, mint a DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metódus, kivéve, hogy a TryParseExact metódus nem ad kivételt, ha az átalakítás sikertelen.

A s paraméter tartalmazza az elemzés dátumát és idejét. Ha a s paraméter csak időt és dátumot tartalmaz, az aktuális dátumot használja a rendszer, kivéve, ha a style paraméter tartalmazza a DateTimeStyles.NoCurrentDateDefault jelölőt, ebben az esetben az alapértelmezett dátumot (DateTime.Date.MinValue) használja a rendszer. Ha a s paraméter csak dátumot és időpontot tartalmaz, a rendszer éjfélt (00:00:00) használ. A style paraméter azt is meghatározza, hogy a s paraméter tartalmazhat-e olyan kezdő, belső vagy záró szóköz karaktereket, amelyek nem engedélyezettek a formázási sztringek egyikében formats.

Ha s nem tartalmaz időzóna-információt, a Kind visszaadott DateTime objektum tulajdonsága .DateTimeKind.Unspecified Ez a viselkedés megváltoztatható a DateTimeStyles.AssumeLocal jelölő használatával, amely egy DateTime olyan értéket ad vissza, amelynek Kind a tulajdonsága DateTimeKind.Local, vagy az DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags használatával, amely egy DateTime olyan értéket ad vissza, amelynek Kind a tulajdonsága.DateTimeKind.Utc Ha az s időzónaadatokat tartalmaz, az idő helyi idővé alakul, ha szükséges, és a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Localvan állítva: . Ez a viselkedés úgy módosítható, hogy a DateTimeStyles.RoundtripKind jelölővel nem konvertálja az egyezményes világidőt (UTC) helyi idővé, és a tulajdonságot a Kind következőre DateTimeKind.Utcállítja.

A formats paraméter egy mintatömböt tartalmaz, amelyek s közül az egyiknek pontosan meg kell egyeznie, ha az elemzési művelet sikeres lesz. A paraméter mintái formats egy vagy több egyéni formátumjelölőből állnak az Egyéni dátum és időformátum sztringek táblából, vagy egy szabványos formátumkijelölőből, amely egy előre definiált mintát azonosít a Standard Dátum és időformátum sztringek táblából.

Ha nem használ dátum- vagy időelválasztókat egyéni formátummintában, használja az invariáns kultúrát a provider paraméterhez és az egyes egyéni formátumkijelölők legszélesebb formájához. Ha például órákat szeretne megadni a mintában, adja meg a "HH" szélesebb űrlapot a "H" keskenyebb űrlap helyett.

Az adott dátum- és időszimbólumokat és sztringeket (például a hét napjainak nevét egy adott nyelven) s a paraméter határozza meg, csakúgy, mint a szabványos formátumjelölő sztring pontos formátumát providers.format A provider paraméter az alábbiak bármelyike lehet:

Ha provider igen null, akkor a rendszer az CultureInfo aktuális kultúrának megfelelő objektumot használja.

A styles paraméter az enumerálás egy vagy több tagját DateTimeStyles tartalmazza, amelyek meghatározzák, hogy megjelenhet-e és hol nem format definiált s üres terület, és ez szabályozza az elemzési művelet pontos viselkedését. Az alábbi táblázat azt ismerteti, hogy az DateTimeStyles enumerálás egyes részei hogyan befolyásolják a TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) metódus működését.

DateTimeStyles tagja Leírás
AdjustToUniversal s Elemzi és szükség esetén UTC-vé alakítja át. Ha s időzóna-eltolást tartalmaz, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeLocal jelölőt, akkor a metódus elemzi a sztringet, meghívja ToUniversalTime a visszaadott DateTime érték UTC értékre konvertálását, és beállítja a Kind tulajdonságot DateTimeKind.Utc. Ha s azt jelzi, hogy utc értéket jelöl, vagy ha s nem tartalmaz időzóna-információt, de styles tartalmazza a DateTimeStyles.AssumeUniversal jelzőt, a metódus elemzi a sztringet, nem végez időzóna-átalakítást a visszaadott DateTime értéken, és a tulajdonságot a Kind következőre DateTimeKind.Utcállítja: . Minden más esetben a zászlónak nincs hatása.
AllowInnerWhite Azt adja meg, hogy a nem definiált format szabad terület jelenhet meg az egyes dátum- és időelemek között.
AllowLeadingWhite Azt adja meg, hogy a nem definiált format üres terület a következő elején sjelenhet meg:
AllowTrailingWhite Azt adja meg, hogy a nem definiált format üres terület megjelenjen a svégén.
AllowWhiteSpaces Megadja, hogy mely s szóközök tartalmazhatnak olyan kezdő, belső és záró szóközöket, amelyeket nem definiál a formatrendszer.
AssumeLocal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor a rendszer azt feltételezi, hogy egy helyi időpontot jelöl. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a Kind visszaadott DateTime érték tulajdonsága a következőre DateTimeKind.Localvan állítva: .
AssumeUniversal Azt adja meg, hogy ha s nem áll rendelkezésre időzóna-információ, akkor feltételezzük, hogy az UTC-t jelöli. Ha nincs megadva a DateTimeStyles.AdjustToUniversal jelölő, a metódus a visszaadott DateTime értéket UTC-ről helyi időpontra konvertálja, és a tulajdonságát a következőre KindállítjaDateTimeKind.Local: .
NoCurrentDateDefault Ha s dátumadatok nélküli időt tartalmaz, a visszatérési érték dátuma a következőre DateTime.MinValue.Datevan állítva: .
None A s paraméter az alapértelmezett értékekkel van elemezve. A jelen lévőn format kívül más szabad terület nem engedélyezett. Ha s nincs dátumösszetevő, a visszaadott DateTime érték dátuma 0001.01.01. Ha s nem tartalmaz időzóna-információt, a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Unspecifiedvan állítva: . Ha az időzóna információi meg vannak jelen, saz idő helyi időre lesz konvertálva, és a Kind visszaadott DateTime objektum tulajdonsága a következőre DateTimeKind.Localvan állítva: .
RoundtripKind Az időzóna-adatokat tartalmazó sztringek esetében megkísérli megakadályozni az értékre való konvertálást DateTime , amelynek tulajdonsága Kind a következőre DateTimeKind.Localvan állítva. Ez a jelző elsősorban megakadályozza az UTC-időpontok helyi időpontra való konvertálását.

Megjegyzések a hívókhoz

A .NET Framework 4-ben a TryParseExact metódus false ad vissza, ha az elemezni kívánt sztring egy óra összetevőt és egy nem egyetértésben lévő AM/PM-tervezőt tartalmaz. A .NET Framework 3.5-ös és korábbi verzióiban a rendszer figyelmen kívül hagyja az AM/PM-tervezőt.

Lásd még

A következőre érvényes: