DateTime.TryParseExact Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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 s
biçimi.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
s
izin 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 s
veya format
parametresi null
ise veya format
iç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[]
s
izin verilebilen biçimlerden oluşan bir dizi.
- provider
- IFormatProvider
s
hakkı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 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 s
biçimi.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
s
izin 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 s
veya format
parametresi null
ise veya format
iç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 format
tarafı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 s
içinde mevcutsa, bunlar da format
tarafı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.Date
veya styles
DateTimeStyles.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:
s
yorumlamak için kullanılan kültürü temsil eden CultureInfo nesnesi. DateTimeFormat özelliği tarafından döndürülen DateTimeFormatInfo nesnesi,s
içindeki simgeleri ve biçimlendirmeyi tanımlar.Tarih ve saat verilerinin biçimini tanımlayan DateTimeFormatInfo nesnesi.
GetFormat yöntemi biçimlendirme bilgileri sağlayan CultureInfo nesnesini veya DateTimeFormatInfo nesnesini döndüren özel bir IFormatProvider uygulaması.
provider
null
ise, 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 styles DateTimeStyles.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 styles DateTimeStyles.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 s başında görünebileceğini belirtir. |
AllowTrailingWhite |
format tarafından tanımlanmayan boşluğun s sonunda görünebileceğini belirtir. |
AllowWhiteSpaces |
s
format tarafı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.Date olarak 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.
s saat 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.
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- .NET Framework Tarih ve Saat Dizelerini Ayrıştırma
- Standart Tarih ve Saat Biçim Dizelerini
- Özel Tarih ve Saat Biçim Dizeleri
Ş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[]
s
izin verilebilen biçimlerden oluşan bir dizi.
- provider
- IFormatProvider
s
hakkında kültüre özgü biçim bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
s
izin 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 s
veya formats
null
, s
veya formats
öğesi boş bir dizeyse veya s
biçimi tam olarak formats
biç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 formats
biç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:
s
yorumlamak için kullanılan kültürü temsil eden CultureInfo nesnesi. DateTimeFormat özelliği tarafından döndürülen DateTimeFormatInfo nesnesi,s
içindeki simgeleri ve biçimlendirmeyi tanımlar.Tarih ve saat verilerinin biçimini tanımlayan DateTimeFormatInfo nesnesi.
GetFormat yöntemi biçimlendirme bilgileri sağlayan CultureInfo nesnesini veya DateTimeFormatInfo nesnesini döndüren özel bir IFormatProvider uygulaması.
provider
null
ise, 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 styles DateTimeStyles.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 styles DateTimeStyles.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 s başında görünebileceğini belirtir. |
AllowTrailingWhite |
format tarafından tanımlanmayan boşluğun s sonunda görünebileceğini belirtir. |
AllowWhiteSpaces |
s
format tarafı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.Date olarak 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.
s saat 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.
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- .NET Framework Tarih ve Saat Dizelerini Ayrıştırma
- Standart Tarih ve Saat Biçim Dizelerini
- Özel Tarih ve Saat Biçim Dizeleri