Aracılığıyla paylaş


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öntemi, dönüştürmenin başarılı olup olmadığını gösteren bir değer döndürür.

Aşırı Yüklemeler

Name Description
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 yayılma alanı 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ö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ı eşdeğerine DateTime 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ç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ö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 eşdeğerine DateTime 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
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs

Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen yayılma alanı 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ö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 biçimi.s

provider
IFormatProvider

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

style
DateTimeStyles

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

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saat ile 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şlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

uzunluğu format 1'dir ve için DateTimeFormatInfotanımlanan biçim tanımlayıcı karakterlerinden biri değildir.

-veya-

format geçerli bir özel biçim deseni içermez.

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

-veya-

stylegeçersiz bir değer bileşimi DateTimeStyles içerir (örneğin, hem hem AssumeUniversalde AssumeLocal ).

Şunlara uygulanır

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
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ı 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[]

İzin verilebilen biçimlerden oluşan bir sdizi.

provider
IFormatProvider

hakkında skü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ğ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 saat ile eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. parametresi ise nullEmptyveya bir tarih ve saatin geçerli dize gösterimini içermiyorsa s dönüştürme başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

içindeki formats bir öğenin uzunluğu 1'dir ve için DateTimeFormatInfotanımlanan biçim tanımlayıcı karakterlerinden biri değildir.

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

-veya-

stylegeçersiz bir değer bileşimi DateTimeStyles içerir (örneğin, hem hem AssumeUniversalde AssumeLocal ).

Şunlara uygulanır

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

Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
DateTime.cs
Kaynak:
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ö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 biçimi.s

provider
IFormatProvider

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

style
DateTimeStyles

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

result
DateTime

Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde sbulunan tarih ve saat ile 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şlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

uzunluğu format 1'dir ve için DateTimeFormatInfotanımlanan biçim tanımlayıcı karakterlerinden biri değildir.

-veya-

format geçerli bir özel biçim deseni içermez.

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

-veya-

stylegeçersiz bir değer bileşimi DateTimeStyles içerir (örneğin, hem hem AssumeUniversalde AssumeLocal ).

Örnekler

Aşağıdaki örnekte yöntemi gösterilmektedir DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) . " 01.05.2009 08:30" dizesinin styles parametre eşit olduğunda başarıyla ayrıştırılamayacağına dikkat edin çünkü baştaki boşluklara DateTimeStyles.None tarafından formatizin verilmez. Buna ek olarak, "01/5/2009 09:00" dizesi "AA/gg/yyyyhh:mm" ile başarıyla format ayrıştırılamaz çünkü tarih dizesi ay format 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, parametre tarafından tanımlanan biçimde olması gereken bir tarihin dize gösterimini ayrıştırırformat. DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) yöntemine benzerdir, ancak TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) yöntemi, dönüştürme başarısız olursa bir hata 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. içinde tarih, saat ve saat dilimi öğeleri varsa s, bunlar tarafından belirtilen formatsırada da görünmelidir. Saat öğesi olmayan bir tarih tanımlarsa ve ayrıştırma işlemi başarılı olursa format , sonuçta elde edilen DateTime 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 DateTime.Now.Datevarsayılan olarak tarihi veya bayrağının eklenip eklenmediğini styles belirten DateTime.MinValue.DateDateTimeStyles.NoCurrentDateDefault bir tarih 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 yerel saate dönüştürülür( gerekirse) 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 DateTimeKind.Utcolarak ayarlamak 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 tablosundaki 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, 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, desende saat belirtmek istiyorsanız, daha dar olan "H" biçimi yerine daha geniş olan "SS" 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ı dizesi ise 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 s görünüp görünmeyeceğini ve ayrıştırma işleminin kesin davranışını denetleyen bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yöntemin işlemini TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.

DateTimeStyles üyesi Açıklama
AdjustToUniversal Ayrıştırır ve, gerekirse s UTC'ye dönüştürür. Eğer s bir saat dilimi ofseti içeriyorsa veya s saat dilimi bilgisi içermiyorsa ancak stylesDateTimeStyles.AssumeLocal bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen ToUniversalTime değeri UTC'ye dönüştürmek için DateTime çağırır ve Kind özelliğini DateTimeKind.Utc olarak ayarlar. UTC'yi temsil ettiğini gösteriyorsa s veya s saat dilimi bilgilerini içermiyorsa ancak styles bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen DateTimeStyles.AssumeUniversal değeri üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve DateTime özelliğini Kind olarak ayarlar. Diğer tüm durumlarda bayrağın hiçbir etkisi yoktur.
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 tanımlanmayan sformatbaştaki, iç ve sondaki beyaz 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ğı mevcut olmadıkça, döndürülen Kind değerinin DateTime özelliği olarak DateTimeKind.Local ayarlanır.
AssumeUniversal Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa, yöntem döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve Kind özelliğini DateTimeKind.Local olarak ayarlar.
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 bulunan boşluktan başka boş alana izin verilmez. 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 öncelikli olarak UTC saatlerinin yerel saatlere dönüştürülmesini engeller.

Arayanlara Notlar

.NET Framework 4'te yöntemi, TryParseExact ayrıştırılacak dizenin bir saat bileşeni ve sözleşmede olmayan bir/PM belirleyicisi içerip içermediğini döndürür false . .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
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 eşdeğerine DateTime 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[]

İzin verilebilen biçimlerden oluşan bir sdizi.

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 saat ile 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 boş bir dizeyse veya öğesi formats boş bir dizeyse s dönüştürme başarısız olur ya da biçimi s içindeki biçim desenlerinden formatsen az biri tarafından tam olarak belirtilmediğinde başarısız olur. Bu parametre başlatılmamış olarak geçirilir.

Döndürülenler

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

Özel durumlar

içindeki formats bir öğenin uzunluğu 1'dir ve için DateTimeFormatInfotanımlanan biçim tanımlayıcı karakterlerinden biri değildir.

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

-veya-

stylegeçersiz bir değer bileşimi DateTimeStyles içerir (örneğin, hem hem AssumeUniversalde AssumeLocal ).

Ö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 ayrıştırır formats . 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 bir 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 bir 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ç 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 yerel saate dönüştürülür( gerekirse) 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 DateTimeKind.Utcolarak ayarlamak Kind için bayrağı kullanılarak DateTimeStyles.RoundtripKind değiştirilebilir.

formats parametresi, ayrıştırma işleminin başarılı olması durumunda tam olarak eşleşmesi s gereken bir desen dizisi içerir. Parametredeki formats desenler , Özel Tarih ve Saat Biçim Dizeleri tablosundaki 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, 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, desende saat belirtmek istiyorsanız, daha dar olan "H" biçimi yerine daha geniş olan "SS" 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ı dizesi ise 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 s görünüp görünmeyeceğini ve ayrıştırma işleminin kesin davranışını denetleyen bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yöntemin işlemini TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.

DateTimeStyles üyesi Açıklama
AdjustToUniversal Ayrıştırır ve, gerekirse s UTC'ye dönüştürür. Eğer s bir saat dilimi ofseti içeriyorsa veya s saat dilimi bilgisi içermiyorsa ancak stylesDateTimeStyles.AssumeLocal bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen ToUniversalTime değeri UTC'ye dönüştürmek için DateTime çağırır ve Kind özelliğini DateTimeKind.Utc olarak ayarlar. UTC'yi temsil ettiğini gösteriyorsa s veya s saat dilimi bilgilerini içermiyorsa ancak styles bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen DateTimeStyles.AssumeUniversal değeri üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve DateTime özelliğini Kind olarak ayarlar. Diğer tüm durumlarda bayrağın hiçbir etkisi yoktur.
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 tanımlanmayan sformatbaştaki, iç ve sondaki beyaz 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ğı mevcut olmadıkça, döndürülen Kind değerinin DateTime özelliği olarak DateTimeKind.Local ayarlanır.
AssumeUniversal Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal bayrağı yoksa, yöntem döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve Kind özelliğini DateTimeKind.Local olarak ayarlar.
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 bulunan boşluktan başka boş alana izin verilmez. 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 öncelikli olarak UTC saatlerinin yerel saatlere dönüştürülmesini engeller.

Arayanlara Notlar

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

Ayrıca bkz.

Şunlara uygulanır