DateTime.TryParseExact Yöntem

Tanım

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

Aşırı Yüklemeler

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

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

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

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

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

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

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

Belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak 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öntemi, dönüştürmenin başarılı olup olmadığını gösteren bir değer 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, JapaneseCalendar ve JapaneseLunisolarCalendarReiwa döneminin başlangıcını işaretledi. Bu tür bir dönem 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. .NETJapon takviminde yeni bir çağı işleme. Zaman değişikliğine hazır olduğundan emin olmak için uygulamalarınızı Windows sistemlerinde test etme hakkında bilgi için bkz. Uygulamanızı Japon çağı değişikliğine hazırlama. .NET'te birden çok çağa sahip takvimleri destekleyen özellikler ve birden çok çağı destekleyen takvimlerle çalışırken en iyi yöntemler için bkz. Dönemlerle çalışma.

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs

Belirtilen biçim, kültüre özgü biçim bilgileri ve stil kullanarak tarih ve saatin belirtilen span gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimle tam olarak eşleşmelidir. yöntemi, dönüştürmenin başarılı olup olmadığını gösteren bir değer 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 tarihi ve saati temsil eden karakterleri içeren bir yayılma alanı.

format
ReadOnlySpan<Char>

gerekli sbiçimi.

provider
IFormatProvider

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

style
DateTimeStyles

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

result
DateTime

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa içinde yer alan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue içerir. s veya format parametresi nullise veya formatiçinde belirtilen desene karşılık gelen bir tarih ve saat içermiyorsa dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Şunlara uygulanır

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs

Tarih ve saatin belirtilen karakter aralığını DateTime eşdeğerine dönüştürür ve dönüştürmenin başarılı olup olmadığını gösteren 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 yayılma alanı.

formats
String[]

sizin verilebilen biçimlerden oluşan bir dizi.

provider
IFormatProvider

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

style
DateTimeStyles

Ayrıştırılan 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ğer None.

result
DateTime

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa içinde yer alan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue içerir. s parametresi null, Emptyise veya tarih ve saatin geçerli dize gösterimini içermiyorsa dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Şunlara uygulanır

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs

Belirtilen biçim, kültüre özgü biçim bilgileri ve stil kullanarak tarih ve saatin belirtilen dize gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimle tam olarak eşleşmelidir. yöntemi, dönüştürmenin başarılı olup olmadığını gösteren bir değer 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 dize.

format
String

gerekli sbiçimi.

provider
IFormatProvider

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

style
DateTimeStyles

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

result
DateTime

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa içinde yer alan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue içerir. s veya format parametresi nullise veya formatiçinde belirtilen desene karşılık gelen bir tarih ve saat içermiyorsa dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

style geçerli bir DateTimeStyles değeri değil.

-veya-

style DateTimeStyles değerlerinin geçersiz bir bileşimini içerir (örneğin, hem AssumeLocal hem de AssumeUniversal).

Örnekler

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

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

s parametresi ayrıştırılacak tarih ve saati içerir ve format parametresi tarafından tanımlanan bir biçimde olmalıdır. tarih, saat ve saat dilimi öğeleri siçinde mevcutsa, bunlar da formattarafından belirtilen sırada görünmelidir. format saat öğesi olmayan bir tarih tanımlarsa ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değerin gece yarısı (00:00:00) zamanı olur. format tarih öğesi olmayan bir saat tanımlarsa ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değeri varsayılan olarak DateTime.Now.Dateveya stylesDateTimeStyles.NoCurrentDateDefault bayrağı içeriyorsa DateTime.MinValue.Date tarihi olur. style parametresi, s parametresinin baştaki, iç veya sondaki boşluk karakterlerini içerip içeremeyeceğini belirler.

s saat dilimi bilgisi içermiyorsa, döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Unspecified. Bu davranış, Kind özelliği DateTimeKind.Localolan bir DateTime değeri döndüren DateTimeStyles.AssumeLocal bayrağı kullanılarak veya Kind özelliği DateTimeKind.Utcolan bir DateTime değeri döndüren DateTimeStyles.AssumeUniversal ve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak değiştirilebilir. s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Localolarak ayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve Kind özelliğini DateTimeKind.Utcolarak ayarlamak için DateTimeStyles.RoundtripKind bayrağı kullanılarak değiştirilebilir.

format parametresi, s parametresinin beklenen biçimine karşılık gelen bir desen içerir. format parametresindeki desen, Özel Tarih ve Saat Biçim Dizeleri tablosundan bir veya daha fazla özel biçim tanımlayıcısından 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, provider parametresi için sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, desende saat belirtmek istiyorsanız, daha dar olan "H" biçimi yerine daha geniş olan "SS" biçimini belirtin.

Not

s ayrıştırma işleminin başarılı olması için tek bir biçime uymasını gerektirmek yerine, DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) yöntemini çağırabilir 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.

s kullanılan belirli tarih ve saat simgeleri ve dizeleri (belirli bir dilde haftanın günlerinin adları gibi) provider parametresi tarafından tanımlanır ve format standart biçim tanımlayıcı dizesiyse s kesin biçimidir. provider parametresi aşağıdakilerden biri olabilir:

provider nullise, geçerli kültüre karşılık gelen CultureInfo nesnesi kullanılır.

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

DateTimeStyles üyesi Açıklama
AdjustToUniversal s ayrıştırıp gerekirse UTC'ye dönüştürür. s saat dilimi uzaklığı içeriyorsa veya s saat dilimi bilgisi içermiyorsa ancak stylesDateTimeStyles.AssumeLocal bayrağı içeriyorsa, yöntem dizeyi ayrıştırıyor, döndürülen DateTime değerini UTC'ye dönüştürmek için ToUniversalTime çağırır ve Kind özelliğini DateTimeKind.Utcolarak ayarlar. s UTC'yi temsil ettiğini gösteriyorsa veya s saat dilimi bilgilerini içermiyorsa ancak stylesDateTimeStyles.AssumeUniversal bayrağı içeriyorsa, yöntem dizeyi ayrıştırıyor, döndürülen DateTime değerinde saat dilimi dönüştürmesi gerçekleştirmez ve Kind özelliğini DateTimeKind.Utcolarak ayarlar. Diğer tüm durumlarda bayrağın hiçbir etkisi yoktur.
AllowInnerWhite format tarafından tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir.
AllowLeadingWhite format tarafından tanımlanmayan boşluğun sbaşında görünebileceğini belirtir.
AllowTrailingWhite format tarafından tanımlanmayan boşluğun ssonunda görünebileceğini belirtir.
AllowWhiteSpaces s formattarafından tanımlanmayan baştaki, iç ve sondaki beyaz boşlukları içerebileceğini belirtir.
AssumeLocal s herhangi bir saat dilimi bilgisi yoksa yerel saati temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa, döndürülen DateTime değerinin Kind özelliği DateTimeKind.Localolarak ayarlanır.
AssumeUniversal s herhangi bir saat dilimi bilgisi yoksa UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa yöntemi döndürülen DateTime değerini UTC'den yerel saate dönüştürür ve Kind özelliğini DateTimeKind.Localolarak ayarlar.
NoCurrentDateDefault s tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi DateTime.MinValue.Dateolarak ayarlanır.
None s parametresi varsayılan değerler kullanılarak ayrıştırılır. format'da mevcut olan boşluktan başka boşluk yoktur. s bir tarih bileşeni yoksa, döndürülen DateTime değerinin tarihi 1/1/0001 olarak ayarlanır. s saat dilimi bilgisi içermiyorsa, döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Unspecifiedolarak ayarlanır. ssaat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Localolarak ayarlanır.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, Kind özelliği DateTimeKind.Localolarak ayarlanmış bir DateTime değerine dönüştürmeyi engellemeye çalışır. Bu bayrak öncelikli olarak UTC saatlerinin yerel saatlere dönüştürülmesini engeller.

Arayanlara Notlar

.NET Framework 4'te TryParseExact yöntemi, ayrıştırılacak dize bir saat bileşeni ve sözleşmede olmayan bir/PM belirleyicisi içeriyorsa false döndürür. .NET Framework 3.5 ve önceki sürümlerinde/PM belirleyicisi yoksayılır.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs

Belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak 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öntemi, dönüştürmenin başarılı olup olmadığını gösteren bir değer 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 tarih ve saati içeren dize.

formats
String[]

sizin verilebilen biçimlerden oluşan bir dizi.

provider
IFormatProvider

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

style
DateTimeStyles

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

result
DateTime

Bu yöntem döndürdüğünde, dönüştürme başarılı olursa içinde yer alan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue içerir. s veya formatsnull, s veya formats öğesi boş bir dizeyse veya s biçimi tam olarak formatsbiçim desenlerinden en az biri tarafından belirtildiği gibi değilse dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

style geçerli bir DateTimeStyles değeri değil.

-veya-

style DateTimeStyles değerlerinin geçersiz bir bileşimini içerir (örneğin, hem AssumeLocal hem de AssumeUniversal).

Örnekler

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

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

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

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

s saat dilimi bilgisi içermiyorsa, döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Unspecified. Bu davranış, Kind özelliği DateTimeKind.Localolan bir DateTime değeri döndüren DateTimeStyles.AssumeLocal bayrağı kullanılarak veya Kind özelliği DateTimeKind.Utcolan bir DateTime değeri döndüren DateTimeStyles.AssumeUniversal ve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak değiştirilebilir. s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Localolarak ayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve Kind özelliğini DateTimeKind.Utcolarak ayarlamak için DateTimeStyles.RoundtripKind bayrağı kullanılarak değiştirilebilir.

formats parametresi, s ayrıştırma işleminin başarılı olması durumunda tam olarak eşleşmesi gereken bir desen dizisi içerir. formats parametresindeki desenler, Özel Tarih ve Saat Biçim Dizeleri tablosundan bir veya daha fazla özel biçim tanımlayıcısından veya Standart Tarih ve Saat Biçim 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, provider parametresi için sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, desende saat belirtmek istiyorsanız, daha dar olan "H" biçimi yerine daha geniş olan "SS" biçimini belirtin.

s kullanılan belirli tarih ve saat simgeleri ve dizeleri (belirli bir dilde haftanın günlerinin adları gibi) provider parametresi tarafından tanımlanır ve format standart biçim tanımlayıcı dizesiyse s kesin biçimidir. provider parametresi aşağıdakilerden biri olabilir:

provider nullise, geçerli kültüre karşılık gelen CultureInfo nesnesi kullanılır.

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

DateTimeStyles üyesi Açıklama
AdjustToUniversal s ayrıştırıp gerekirse UTC'ye dönüştürür. s saat dilimi uzaklığı içeriyorsa veya s saat dilimi bilgisi içermiyorsa ancak stylesDateTimeStyles.AssumeLocal bayrağı içeriyorsa, yöntem dizeyi ayrıştırıyor, döndürülen DateTime değerini UTC'ye dönüştürmek için ToUniversalTime çağırır ve Kind özelliğini DateTimeKind.Utcolarak ayarlar. s UTC'yi temsil ettiğini gösteriyorsa veya s saat dilimi bilgilerini içermiyorsa ancak stylesDateTimeStyles.AssumeUniversal bayrağı içeriyorsa, yöntem dizeyi ayrıştırıyor, döndürülen DateTime değerinde saat dilimi dönüştürmesi gerçekleştirmez ve Kind özelliğini DateTimeKind.Utcolarak ayarlar. Diğer tüm durumlarda bayrağın hiçbir etkisi yoktur.
AllowInnerWhite format tarafından tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir.
AllowLeadingWhite format tarafından tanımlanmayan boşluğun sbaşında görünebileceğini belirtir.
AllowTrailingWhite format tarafından tanımlanmayan boşluğun ssonunda görünebileceğini belirtir.
AllowWhiteSpaces s formattarafından tanımlanmayan baştaki, iç ve sondaki beyaz boşlukları içerebileceğini belirtir.
AssumeLocal s herhangi bir saat dilimi bilgisi yoksa yerel saati temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa, döndürülen DateTime değerinin Kind özelliği DateTimeKind.Localolarak ayarlanır.
AssumeUniversal s herhangi bir saat dilimi bilgisi yoksa UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa yöntemi döndürülen DateTime değerini UTC'den yerel saate dönüştürür ve Kind özelliğini DateTimeKind.Localolarak ayarlar.
NoCurrentDateDefault s tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi DateTime.MinValue.Dateolarak ayarlanır.
None s parametresi varsayılan değerler kullanılarak ayrıştırılır. format'da mevcut olan boşluktan başka boşluk yoktur. s bir tarih bileşeni yoksa, döndürülen DateTime değerinin tarihi 1/1/0001 olarak ayarlanır. s saat dilimi bilgisi içermiyorsa, döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Unspecifiedolarak ayarlanır. ssaat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve döndürülen DateTime nesnesinin Kind özelliği DateTimeKind.Localolarak ayarlanır.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, Kind özelliği DateTimeKind.Localolarak ayarlanmış bir DateTime değerine dönüştürmeyi engellemeye çalışır. Bu bayrak öncelikli olarak UTC saatlerinin yerel saatlere dönüştürülmesini engeller.

Arayanlara Notlar

.NET Framework 4'te TryParseExact yöntemi, ayrıştırılacak dize bir saat bileşeni ve sözleşmede olmayan bir/PM belirleyicisi içeriyorsa false döndürür. .NET Framework 3.5 ve önceki sürümlerinde/PM belirleyicisi yoksayılır.

Ayrıca bkz.

Şunlara uygulanır