DateTime.TryParseExact Yöntem

Tanım

Bir tarih ve saatin belirtilen dize gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

Aşırı Yüklemeler

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

Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen span gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

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

Tarih ve saatin belirtilen karakter aralığını eşdeğerine DateTime dönüştürür ve dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

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

Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

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

Belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

Açıklamalar

Önemli

Japon takvimlerindeki dönemler imparatorun saltanatına dayanır ve bu nedenle değişmesi beklenir. Örneğin, 1 Mayıs 2019 ve JapaneseLunisolarCalendariçinde Reiwa döneminin başlangıcını işaretlediJapaneseCalendar. Bu tür bir çağ değişikliği, bu takvimleri kullanan tüm uygulamaları etkiler. Daha fazla bilgi edinmek ve uygulamalarınızın etkilenip etkilenmediğini belirlemek için bkz. .NET'te Japon takviminde yeni bir dönemi işleme. Uygulamalarınızı Windows sistemlerinde test ederek çağ değişikliğine hazır olmalarını sağlama hakkında bilgi için bkz. Uygulamanızı Japon dönemi değişikliğine hazırlama. .NET'te birden çok dönemi destekleyen takvimleri destekleyen özellikler ve birden çok dönemi destekleyen takvimlerle çalışırken en iyi yöntemler için bkz. Dönemlerle çalışma.

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

Source:
DateTime.cs
Source:
DateTime.cs
Source:
DateTime.cs

Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen span gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

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

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek tarih ve saati temsil eden karakterleri içeren bir yayılma alanı.

format
ReadOnlySpan<Char>

Gerekli biçimi.s

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

style
DateTimeStyles

İzin verilen biçimini sgösteren bir veya daha fazla numaralandırma değerinin bit düzeyinde birleşimi.

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya format parametresi nullboş bir dizeyse veya içinde formatbelirtilen desene karşılık gelen bir tarih ve saat içermiyorsa s dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Şunlara uygulanır

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

Source:
DateTime.cs
Source:
DateTime.cs
Source:
DateTime.cs

Tarih ve saatin belirtilen karakter aralığını eşdeğerine DateTime dönüştürür ve dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür.

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

Parametreler

s
ReadOnlySpan<Char>

Ayrıştırılacak dizeyi içeren span.

formats
String[]

İzin verilebilen biçim dizisi s.

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

style
DateTimeStyles

Ayrıştırılmış tarihin geçerli saat dilimine veya geçerli tarihe göre nasıl yorumlandığını tanımlayan sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir None.

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. parametresi null, ise Emptyveya bir tarih ve saatin geçerli bir dize gösterimini içermiyorsa s dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.

Döndürülenler

trues parametresi başarıyla dönüştürüldüyse; aksi takdirde , false.

Şunlara uygulanır

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

Source:
DateTime.cs
Source:
DateTime.cs
Source:
DateTime.cs

Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

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

Parametreler

s
String

Dönüştürülecek tarih ve saati içeren bir dize.

format
String

Gerekli biçimi.s

provider
IFormatProvider

hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.

style
DateTimeStyles

İzin verilen biçimini sgösteren bir veya daha fazla numaralandırma değerinin bit düzeyinde birleşimi.

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya format parametresi nullboş bir dizeyse veya içinde formatbelirtilen desene karşılık gelen bir tarih ve saat içermiyorsa s dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.

Döndürülenler

true başarıyla dönüştürüldüyse s ; aksi takdirde , false.

Özel durumlar

styles geçerli DateTimeStyles bir değer değil.

-veya-

styles geçersiz bir değer bileşimi DateTimeStyles içeriyor (örneğin, hem hem de AssumeLocalAssumeUniversal).

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) . Öndeki boşluklara izin verilmediğinden formatparametre eşit DateTimeStyles.None olduğunda " 01.05.2009 08:30" dizesinin styles başarıyla ayrıştırılamayacağını unutmayın. Buna ek olarak, "01.05.2009 09:00" dizesi "AA/gg/yyyyhh:mm" ile format başarıyla ayrıştırılamaz, çünkü tarih dizesi ay sayısından önce bir baştaki sıfırdan önce değildir.format

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

Açıklamalar

DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) yöntemi, parametre tarafından tanımlanan biçimde olması gereken bir tarihin dize gösterimini format ayrıştırır. Yöntemine DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) benzer, ancak TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) dönüştürme başarısız olursa yöntemi bir özel durum oluşturmaz.

s parametresi ayrıştırılacak tarih ve saati içerir ve parametresi tarafından format tanımlanan bir biçimde olmalıdır. tarih, saat ve saat dilimi öğeleri içinde smevcutsa, bunların da tarafından formatbelirtilen sırada görünmesi gerekir. Saat öğesi olmayan bir tarih tanımlarsa format ve ayrıştırma işlemi başarılı olursa, sonuçta elde DateTime edilen değerin gece yarısı (00:00:00) saati vardır. Tarih öğesi olmayan bir saat tanımlarsa format ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değerin varsayılan olarak bir tarihi DateTime.Now.Datevardır veya bayrağı içeriyorsa DateTimeStyles.NoCurrentDateDefault bir tarihi DateTime.MinValue.Datestyles vardır. style parametresi, parametrenin s baştaki, iç veya sondaki boşluk karakterlerini içerip içeremeyeceğini belirler.

Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified. Bu davranış, özelliği olan bir değer döndüren bayrağı kullanılarak DateTimeStyles.AssumeLocal veya özelliği DateTimeKind.Localolan bir DateTime değer döndüren DateTimeKindDateTimeKind.Utcve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak DateTimeStyles.AssumeUniversal değiştirilebilir.Kind s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve özelliğini olarak DateTimeKind.Utcayarlamak Kind için bayrağı kullanılarak DateTimeStyles.RoundtripKind değiştirilebilir.

parametresi, format parametrenin beklenen biçimine s karşılık gelen bir desen içerir. Parametredeki format desen, Özel Tarih ve Saat Biçim Dizeleri tablosundan bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve Saat Biçimi Dizeleri tablosundan önceden tanımlanmış bir desen tanımlayan tek bir standart biçim tanımlayıcısından oluşur.

Özel biçim deseninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için provider sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.

Not

Ayrıştırma işleminin başarılı olması için tek bir biçime uygun olmasını s gerektirmek yerine yöntemini çağırabilir DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) ve izin verilen birden çok biçim belirtebilirsiniz. Bu, ayrıştırma işleminin başarılı olma olasılığını daha yüksek hale getirir.

içinde kullanılan s belirli tarih ve saat simgeleri ve dizeleri (belirli bir dildeki haftanın günlerinin adları gibi), standart biçim tanımlayıcı dizesiyse format tam biçimi s olduğu gibi parametresi tarafından provider tanımlanır. provider parametresi aşağıdakilerden biri olabilir:

ise providernull, CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.

parametresi, styles tarafından tanımlanmayan format boşluğun DateTimeStyles içinde görünüp görünmeyeceğini s ve ayrıştırma işleminin kesin davranışını denetleyen sabit listesinin bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yönteminin çalışmasını TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.

DateTimeStyles üyesi Description
AdjustToUniversal ayrıştırıp s gerekirse UTC'ye dönüştürür. s Saat dilimi uzaklığı içeriyorsa veya saat dilimi bilgisi içermiyorsa s ancak styles bayrağı içeriyorsaDateTimeStyles.AssumeLocal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değeri UTC'ye dönüştürmek için çağrılar ToUniversalTime ve özelliğini olarak DateTimeKind.UtcayarlarKind. UTC'yi temsil ettiğini gösterirse s veya saat dilimi bilgilerini içermiyorsa s ancak styles bayrağını içeriyorsaDateTimeStyles.AssumeUniversal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değer üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve özelliğini olarak DateTimeKind.UtcayarlarKind. Diğer durumlarda, bayrağın hiçbir etkisi olmaz.
AllowInnerWhite tarafından format tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir.
AllowLeadingWhite tarafından format tanımlanmayan boşluğun başında sgörünebileceğini belirtir.
AllowTrailingWhite tarafından format tanımlanmayan boşluğun sonunda sgörünebileceğini belirtir.
AllowWhiteSpaces tarafından formattanımlanmayan s baştaki, iç ve sondaki boşlukları içerebileceğini belirtir.
AssumeLocal Herhangi bir saat dilimi bilgisi yoksa s , yerel saati temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa, Kind döndürülen DateTime değerin özelliği olarak DateTimeKind.Localayarlanır.
AssumeUniversal Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa yöntemi döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve özelliğini olarak DateTimeKind.LocalayarlarKind.
NoCurrentDateDefault s Tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi olarak DateTime.MinValue.Dateayarlanır.
None s parametresi varsayılan değerler kullanılarak ayrıştırılır. içinde format bulunandan başka boşluk yoktur. Tarih bileşeni yoksa s , döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır. Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Unspecifiedayarlanır. içinde ssaat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, özelliği olarak ayarlanmış bir DateTime değere Kind dönüştürmeyi engellemeye DateTimeKind.Localçalışır. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler.

Arayanlara Notlar

.NET Framework 4'te yöntem, TryParseExact ayrıştırılacak dizenin bir saat bileşeni ve uyuşmayan bir AM/PM belirteci içerip içermediğini döndürürfalse. .NET Framework 3.5 ve önceki sürümlerde AM/PM göstergesi yoksayılır.

Ayrıca bkz.

Şunlara uygulanır

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

Source:
DateTime.cs
Source:
DateTime.cs
Source:
DateTime.cs

Belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.

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

Parametreler

s
String

Dönüştürülecek bir tarih ve saat içeren bir dize.

formats
String[]

İzin verilebilen biçim dizisi s.

provider
IFormatProvider

hakkında skültüre özgü biçim bilgileri sağlayan bir nesne.

style
DateTimeStyles

İzin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi s. Belirtilmesi gereken tipik bir değerdir None.

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya formats ise snullveya öğesi formats boş bir dizeyse s ya da biçimi içindeki biçim s desenlerinden formatsen az biri tarafından tam olarak belirtildiği gibi değilse dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.

Döndürülenler

trues parametresi başarıyla dönüştürüldüyse; aksi takdirde , false.

Özel durumlar

styles geçerli DateTimeStyles bir değer değil.

-veya-

styles geçersiz bir değer bileşimi DateTimeStyles içeriyor (örneğin, hem hem de AssumeLocalAssumeUniversal).

Örnekler

Aşağıdaki örnek, bir dizi olası biçimdeki bir dizenin başarıyla ayrıştırılabilmesini sağlamak için yöntemini kullanır DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) .

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.

Açıklamalar

yöntemi, DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) parametreye atanan desenlerden herhangi biriyle eşleşen bir tarihin dize gösterimini formats ayrıştırır. Yöntemine DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) benzer, ancak TryParseExact dönüştürme başarısız olursa yöntemi özel durum oluşturmaz.

s parametresi ayrıştırmak için tarih ve saati içerir. s Parametre yalnızca saat içeriyorsa ve tarih içermiyorsa, parametre bayrağını içermediği DateTimeStyles.NoCurrentDateDefault sürece style geçerli tarih kullanılır ve bu durumda varsayılan tarih (DateTime.Date.MinValue) kullanılır. s Parametre yalnızca tarih içeriyorsa ve saat içermiyorsa, gece yarısı (00:00:00) kullanılır. style parametresi, parametresinin s içindeki biçim dizelerinden biri tarafından izin verilenler dışında baştaki, içteki veya sondaki boşluk karakterlerini formatsiçerip içeremeyeceğini de belirler.

Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified. Bu davranış, özelliği olan bir değer döndüren bayrağı kullanılarak DateTimeStyles.AssumeLocal veya özelliği DateTimeKind.Localolan bir DateTime değer döndüren DateTimeKindDateTimeKind.Utcve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak DateTimeStyles.AssumeUniversal değiştirilebilir.Kind s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve özelliğini olarak DateTimeKind.Utcayarlamak Kind için bayrağı kullanılarak DateTimeStyles.RoundtripKind değiştirilebilir.

formats parametresi, ayrıştırma işleminin başarılı olması durumunda biri s tam olarak eşleşmesi gereken bir desen dizisi içerir. Parametredeki formats desenler , Özel Tarih ve Saat Biçim Dizeleri tablosundaki bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve Saat Biçimi Dizeleri tablosundan önceden tanımlanmış bir deseni tanımlayan tek bir standart biçim tanımlayıcısından oluşur.

Özel biçim deseninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için provider sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.

içinde kullanılan s belirli tarih ve saat simgeleri ve dizeleri (belirli bir dildeki haftanın günlerinin adları gibi), standart biçim tanımlayıcı dizesiyse format tam biçimi s olduğu gibi parametresi tarafından provider tanımlanır. provider parametresi aşağıdakilerden biri olabilir:

ise providernull, CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.

parametresi, styles tarafından tanımlanmayan format boşluğun DateTimeStyles içinde görünüp görünmeyeceğini s ve ayrıştırma işleminin kesin davranışını denetleyen sabit listesinin bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yönteminin çalışmasını TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.

DateTimeStyles üyesi Description
AdjustToUniversal ayrıştırıp s gerekirse UTC'ye dönüştürür. s Saat dilimi uzaklığı içeriyorsa veya saat dilimi bilgisi içermiyorsa s ancak styles bayrağı içeriyorsaDateTimeStyles.AssumeLocal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değeri UTC'ye dönüştürmek için çağrılar ToUniversalTime ve özelliğini olarak DateTimeKind.UtcayarlarKind. UTC'yi temsil ettiğini gösterirse s veya saat dilimi bilgilerini içermiyorsa s ancak styles bayrağını içeriyorsaDateTimeStyles.AssumeUniversal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değer üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve özelliğini olarak DateTimeKind.UtcayarlarKind. Diğer durumlarda, bayrağın hiçbir etkisi olmaz.
AllowInnerWhite tarafından format tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir.
AllowLeadingWhite tarafından format tanımlanmayan boşluğun başında sgörünebileceğini belirtir.
AllowTrailingWhite tarafından format tanımlanmayan boşluğun sonunda sgörünebileceğini belirtir.
AllowWhiteSpaces tarafından formattanımlanmayan s baştaki, iç ve sondaki boşlukları içerebileceğini belirtir.
AssumeLocal Herhangi bir saat dilimi bilgisi yoksa s , yerel saati temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa, Kind döndürülen DateTime değerin özelliği olarak DateTimeKind.Localayarlanır.
AssumeUniversal Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa yöntemi döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve özelliğini olarak DateTimeKind.LocalayarlarKind.
NoCurrentDateDefault s Tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi olarak DateTime.MinValue.Dateayarlanır.
None s parametresi varsayılan değerler kullanılarak ayrıştırılır. içinde format bulunandan başka boşluk yoktur. Tarih bileşeni yoksa s , döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır. Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Unspecifiedayarlanır. içinde ssaat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, özelliği olarak ayarlanmış bir DateTime değere Kind dönüştürmeyi engellemeye DateTimeKind.Localçalışır. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler.

Arayanlara Notlar

.NET Framework 4'te yöntem, TryParseExact ayrıştırılacak dizenin bir saat bileşeni ve uyuşmayan bir AM/PM belirteci içerip içermediğini döndürürfalse. .NET Framework 3.5 ve önceki sürümlerde AM/PM göstergesi yoksayılır.

Ayrıca bkz.

Şunlara uygulanır