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 eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.
Aşırı Yüklemeler
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) |
Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen span gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime) |
Tarih ve saatin belirtilen karakter aralığını eşdeğerine DateTime dönüştürür ve dönüştürmenin başarılı olup olmadığını belirten bir değer döndürür. |
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) |
Belirtilen biçimi, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür. |
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) |
Belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak bir tarih ve saatin belirtilen dize gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür. |
Açıklamalar
Önemli
Japon takvimlerindeki dönemler imparatorun saltanatına dayanır ve bu nedenle değişmesi beklenir. Örneğin, 1 Mayıs 2019 ve JapaneseLunisolarCalendariçinde Reiwa döneminin başlangıcını işaretlediJapaneseCalendar. Bu tür bir çağ değişikliği, bu takvimleri kullanan tüm uygulamaları etkiler. Daha fazla bilgi edinmek ve uygulamalarınızın etkilenip etkilenmediğini belirlemek için bkz. .NET'te Japon takviminde yeni bir dönemi işleme. Uygulamalarınızı Windows sistemlerinde test ederek çağ değişikliğine hazır olmalarını sağlama hakkında bilgi için bkz. Uygulamanızı Japon dönemi değişikliğine hazırlama. .NET'te birden çok dönemi destekleyen takvimleri destekleyen özellikler ve birden çok dönemi destekleyen takvimlerle çalışırken en iyi yöntemler için bkz. Dönemlerle çalışma.
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
- 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 span gösterimini eşdeğerine DateTime dönüştürür. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.
public:
static bool TryParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek tarih ve saati temsil eden karakterleri içeren bir yayılma alanı.
- format
- ReadOnlySpan<Char>
Gerekli biçimi.s
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
İzin verilen biçimini s
gösteren bir veya daha fazla numaralandırma değerinin bit düzeyinde birleşimi.
- result
- DateTime
Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde s
bulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya format
parametresi null
boş bir dizeyse veya içinde format
belirtilen desene karşılık gelen bir tarih ve saat içermiyorsa s
dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.
Döndürülenler
true
başarıyla dönüştürüldüyse s
; aksi takdirde , false
.
Şunlara uygulanır
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTime)
- 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ı belirten bir değer döndürür.
public:
static bool TryParseExact(ReadOnlySpan<char> s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Ayrıştırılacak dizeyi içeren span.
- formats
- String[]
İzin verilebilen biçim dizisi s
.
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
Ayrıştırılmış tarihin geçerli saat dilimine veya geçerli tarihe göre nasıl yorumlandığını tanımlayan sabit listesi değerlerinin bit düzeyinde birleşimi. Belirtilmesi gereken tipik bir değerdir None.
- result
- DateTime
Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde s
bulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. parametresi null
, ise Emptyveya bir tarih ve saatin geçerli bir dize gösterimini içermiyorsa s
dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.
Döndürülenler
true
s
parametresi başarıyla dönüştürüldüyse; aksi takdirde , false
.
Şunlara uygulanır
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)
- 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öntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.
public:
static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string? format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametreler
- s
- String
Dönüştürülecek tarih ve saati içeren bir dize.
- format
- String
Gerekli biçimi.s
- provider
- IFormatProvider
hakkında s
kültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- style
- DateTimeStyles
İzin verilen biçimini s
gösteren bir veya daha fazla numaralandırma değerinin bit düzeyinde birleşimi.
- result
- DateTime
Bu yöntem döndürdüğünde DateTime , dönüştürme başarılı olursa içinde s
bulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya format
parametresi null
boş bir dizeyse veya içinde format
belirtilen desene karşılık gelen bir tarih ve saat içermiyorsa s
dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.
Döndürülenler
true
başarıyla dönüştürüldüyse s
; aksi takdirde , false
.
Özel durumlar
styles
geçerli DateTimeStyles bir değer değil.
-veya-
styles
geçersiz bir değer bileşimi DateTimeStyles içeriyor (örneğin, hem hem de AssumeLocalAssumeUniversal).
Örnekler
Aşağıdaki örnekte yöntemi gösterilmektedir DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) . Öndeki boşluklara izin verilmediğinden format
parametre eşit DateTimeStyles.None olduğunda " 01.05.2009 08:30" dizesinin styles
başarıyla ayrıştırılamayacağını unutmayın. Buna ek olarak, "01.05.2009 09:00" dizesi "AA/gg/yyyyhh:mm" ile format
başarıyla ayrıştırılamaz, çünkü tarih dizesi ay sayısından önce bir baştaki sıfırdan önce değildir.format
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo enUS = new CultureInfo("en-US");
string dateString;
DateTime dateValue;
// Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM";
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "g", enUS,
DateTimeStyles.AllowLeadingWhite, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Use custom formats with M and MM.
dateString = "5/01/2009 09:00";
if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00";
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Allow a leading space in the date string.
if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.AdjustToUniversal, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
// Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z";
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind, out dateValue))
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
}
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
open System
open System.Globalization
[<EntryPoint>]
let main _ =
let enUS = CultureInfo "en-US"
// Parse date with no style flags.
let dateString = " 5/01/2009 8:30 AM"
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Use custom formats with M and MM.
let dateString = "5/01/2009 09:00"
match DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string with time zone information.
let dateString = "05/01/2009 01:30:42 PM -05:00"
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string representing UTC.
let dateString = "2008-06-11T16:11:20.0904778Z"
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $"'{dateString}' is not in an acceptable format."
0
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim enUS As New CultureInfo("en-US")
Dim dateString As String
Dim dateValue As Date
' Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM"
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "g", enUS, _
DateTimeStyles.AllowLeadingWhite, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Use custom formats with M and MM.
dateString = "5/01/2009 09:00"
If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00"
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Allow a leading space in the date string.
If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.AdjustToUniversal, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
' Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z"
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.None, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.RoundtripKind, dateValue) Then
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Else
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End If
End Sub
End Module
' The example displays the following output:
' ' 5/01/2009 8:30 AM' is not in an acceptable format.
' Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
' Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
' '5/01/2009 09:00' is not in an acceptable format.
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Açıklamalar
DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) yöntemi, parametre tarafından tanımlanan biçimde olması gereken bir tarihin dize gösterimini format
ayrıştırır. Yöntemine DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) benzer, ancak TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) dönüştürme başarısız olursa yöntemi bir özel durum oluşturmaz.
s
parametresi ayrıştırılacak tarih ve saati içerir ve parametresi tarafından format
tanımlanan bir biçimde olmalıdır. tarih, saat ve saat dilimi öğeleri içinde s
mevcutsa, bunların da tarafından format
belirtilen sırada görünmesi gerekir. Saat öğesi olmayan bir tarih tanımlarsa format
ve ayrıştırma işlemi başarılı olursa, sonuçta elde DateTime edilen değerin gece yarısı (00:00:00) saati vardır. Tarih öğesi olmayan bir saat tanımlarsa format
ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değerin varsayılan olarak bir tarihi DateTime.Now.Date
vardır veya bayrağı içeriyorsa DateTimeStyles.NoCurrentDateDefault bir tarihi DateTime.MinValue.Date
styles
vardır. style
parametresi, parametrenin s
baştaki, iç veya sondaki boşluk karakterlerini içerip içeremeyeceğini belirler.
Saat dilimi bilgisi içermiyorsa s
, Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified. Bu davranış, özelliği olan bir değer döndüren bayrağı kullanılarak DateTimeStyles.AssumeLocal veya özelliği DateTimeKind.Localolan bir DateTime değer döndüren DateTimeKindDateTimeKind.Utcve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak DateTimeStyles.AssumeUniversal değiştirilebilir.Kind s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve özelliğini olarak DateTimeKind.Utcayarlamak Kind için bayrağı kullanılarak DateTimeStyles.RoundtripKind değiştirilebilir.
parametresi, format
parametrenin beklenen biçimine s
karşılık gelen bir desen içerir. Parametredeki format
desen, Özel Tarih ve Saat Biçim Dizeleri tablosundan bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve Saat Biçimi Dizeleri tablosundan önceden tanımlanmış bir desen tanımlayan tek bir standart biçim tanımlayıcısından oluşur.
Özel biçim deseninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için provider
sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.
Not
Ayrıştırma işleminin başarılı olması için tek bir biçime uygun olmasını s
gerektirmek yerine yöntemini çağırabilir DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) ve izin verilen birden çok biçim belirtebilirsiniz. Bu, ayrıştırma işleminin başarılı olma olasılığını daha yüksek hale getirir.
içinde kullanılan s
belirli tarih ve saat simgeleri ve dizeleri (belirli bir dildeki haftanın günlerinin adları gibi), standart biçim tanımlayıcı dizesiyse format
tam biçimi s
olduğu gibi parametresi tarafından provider
tanımlanır. provider
parametresi aşağıdakilerden biri olabilir:
CultureInfo yorumlamak
s
için kullanılan kültürü temsil eden bir nesne. DateTimeFormatInfo özelliği tarafından DateTimeFormat döndürülen nesne, içindekis
sembolleri ve biçimlendirmeyi tanımlar.DateTimeFormatInfo Tarih ve saat verilerinin biçimini tanımlayan nesne.
Yöntemi, biçimlendirme bilgilerini sağlayan nesneyi veya DateTimeFormatInfo nesneyi döndüren CultureInfo özel IFormatProvider bir uygulamaGetFormat.
ise provider
null
, CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.
parametresi, styles
tarafından tanımlanmayan format
boşluğun DateTimeStyles içinde görünüp görünmeyeceğini s
ve ayrıştırma işleminin kesin davranışını denetleyen sabit listesinin bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yönteminin çalışmasını TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.
DateTimeStyles üyesi | Description |
---|---|
AdjustToUniversal | ayrıştırıp s gerekirse UTC'ye dönüştürür. s Saat dilimi uzaklığı içeriyorsa veya saat dilimi bilgisi içermiyorsa s ancak styles bayrağı içeriyorsaDateTimeStyles.AssumeLocal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değeri UTC'ye dönüştürmek için çağrılar ToUniversalTime ve özelliğini olarak DateTimeKind.UtcayarlarKind. UTC'yi temsil ettiğini gösterirse s veya saat dilimi bilgilerini içermiyorsa s ancak styles bayrağını içeriyorsaDateTimeStyles.AssumeUniversal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değer üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve özelliğini olarak DateTimeKind.UtcayarlarKind. Diğer durumlarda, bayrağın hiçbir etkisi olmaz. |
AllowInnerWhite | tarafından format tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir. |
AllowLeadingWhite | tarafından format tanımlanmayan boşluğun başında s görünebileceğini belirtir. |
AllowTrailingWhite | tarafından format tanımlanmayan boşluğun sonunda s görünebileceğini belirtir. |
AllowWhiteSpaces | tarafından format tanımlanmayan s baştaki, iç ve sondaki boşlukları içerebileceğini belirtir. |
AssumeLocal | Herhangi bir saat dilimi bilgisi yoksa s , yerel saati temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa, Kind döndürülen DateTime değerin özelliği olarak DateTimeKind.Localayarlanır. |
AssumeUniversal | Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa yöntemi döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve özelliğini olarak DateTimeKind.LocalayarlarKind. |
NoCurrentDateDefault | s Tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi olarak DateTime.MinValue.Date ayarlanır. |
None | s parametresi varsayılan değerler kullanılarak ayrıştırılır. içinde format bulunandan başka boşluk yoktur. Tarih bileşeni yoksa s , döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır. Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Unspecifiedayarlanır. içinde s saat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. |
RoundtripKind | Saat dilimi bilgilerini içeren dizeler için, özelliği olarak ayarlanmış bir DateTime değere Kind dönüştürmeyi engellemeye DateTimeKind.Localçalışır. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler. |
Arayanlara Notlar
.NET Framework 4'te yöntem, TryParseExact ayrıştırılacak dizenin bir saat bileşeni ve uyuşmayan bir AM/PM belirteci içerip içermediğini döndürürfalse
. .NET Framework 3.5 ve önceki sürümlerde AM/PM göstergesi yoksayılır.
Ayrıca bkz.
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- .NET Framework'te Tarih ve Saat Dizelerini Ayrıştırma
- Standart Tarih ve Saat Biçim Dizeleri
- Ö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 bir tarih ve saatin belirtilen dize gösterimini DateTime eşdeğerine dönüştürür. Dize gösteriminin biçimi, belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir. Yöntem, dönüştürmenin başarılı olup olmadığını gösteren bir değeri döndürür.
public:
static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametreler
- s
- String
Dönüştürülecek bir tarih ve saat içeren bir dize.
- formats
- String[]
İzin verilebilen biçim dizisi s
.
- provider
- IFormatProvider
hakkında s
kü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 s
bulunan tarih ve saate eşdeğer değeri veya dönüştürme başarısız olursa DateTime.MinValue değerini içerir. veya formats
ise s
null
veya öğesi formats
boş bir dizeyse s
ya da biçimi içindeki biçim s
desenlerinden formats
en az biri tarafından tam olarak belirtildiği gibi değilse dönüştürme başarısız olur. Bu parametre, başlatmadan iletilir.
Döndürülenler
true
s
parametresi başarıyla dönüştürüldüyse; aksi takdirde , false
.
Özel durumlar
styles
geçerli DateTimeStyles bir değer değil.
-veya-
styles
geçersiz bir değer bileşimi DateTimeStyles içeriyor (örneğin, hem hem de AssumeLocalAssumeUniversal).
Örnekler
Aşağıdaki örnek, bir dizi olası biçimdeki bir dizenin başarıyla ayrıştırılabilmesini sağlamak için yöntemini kullanır DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) .
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
"M/d/yyyy h:mm", "M/d/yyyy h:mm",
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"};
string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
"5/1/2009 6:32:00", "05/01/2009 06:32",
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"};
DateTime dateValue;
foreach (string dateString in dateStrings)
{
if (DateTime.TryParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None,
out dateValue))
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
}
}
}
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
open System
open System.Globalization
let formats=
[| "M/d/yyyy h:mm:ss tt"; "M/d/yyyy h:mm tt"
"MM/dd/yyyy hh:mm:ss"; "M/d/yyyy h:mm:ss"
"M/d/yyyy hh:mm tt"; "M/d/yyyy hh tt"
"M/d/yyyy h:mm"; "M/d/yyyy h:mm"
"MM/dd/yyyy hh:mm"; "M/dd/yyyy hh:mm" |]
let dateStrings =
[ "5/1/2009 6:32 PM"; "05/01/2009 6:32:05 PM"
"5/1/2009 6:32:00"; "05/01/2009 06:32"
"05/01/2009 06:32:00 PM"; "05/01/2009 06:32:00" ]
for dateString in dateStrings do
match DateTime.TryParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None) with
| true, dateValue ->
printfn $"Converted '{dateString}' to {dateValue}."
| _ ->
printfn $"Unable to convert '{dateString}' to a date."
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
"M/d/yyyy h:mm", "M/d/yyyy h:mm", _
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm"}
Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
"5/1/2009 6:32:00", "05/01/2009 06:32", _
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00"}
Dim dateValue As DateTime
For Each dateString As String In dateStrings
If Date.TryParseExact(dateString, formats, _
New CultureInfo("en-US"), _
DateTimeStyles.None, _
dateValue) Then
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
Else
Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
End If
Next
End Sub
End Module
' The example displays the following output:
' Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
' Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
Açıklamalar
yöntemi, DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) parametreye atanan desenlerden herhangi biriyle eşleşen bir tarihin dize gösterimini formats
ayrıştırır. Yöntemine DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) benzer, ancak TryParseExact dönüştürme başarısız olursa yöntemi özel durum oluşturmaz.
s
parametresi ayrıştırmak için tarih ve saati içerir. s
Parametre yalnızca saat içeriyorsa ve tarih içermiyorsa, parametre bayrağını içermediği DateTimeStyles.NoCurrentDateDefault sürece style
geçerli tarih kullanılır ve bu durumda varsayılan tarih (DateTime.Date.MinValue
) kullanılır. s
Parametre yalnızca tarih içeriyorsa ve saat içermiyorsa, gece yarısı (00:00:00) kullanılır. style
parametresi, parametresinin s
içindeki biçim dizelerinden biri tarafından izin verilenler dışında baştaki, içteki veya sondaki boşluk karakterlerini formats
içerip içeremeyeceğini de belirler.
Saat dilimi bilgisi içermiyorsa s
, Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified. Bu davranış, özelliği olan bir değer döndüren bayrağı kullanılarak DateTimeStyles.AssumeLocal veya özelliği DateTimeKind.Localolan bir DateTime değer döndüren DateTimeKindDateTimeKind.Utcve DateTimeStyles.AdjustToUniversal bayrakları kullanılarak DateTimeStyles.AssumeUniversal değiştirilebilir.Kind s saat dilimi bilgilerini içeriyorsa, saat gerekirse yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. Bu davranış, Eşgüdümlü Evrensel Saat'i (UTC) yerel saate dönüştürmemek ve özelliğini olarak DateTimeKind.Utcayarlamak Kind için bayrağı kullanılarak DateTimeStyles.RoundtripKind değiştirilebilir.
formats
parametresi, ayrıştırma işleminin başarılı olması durumunda biri s
tam olarak eşleşmesi gereken bir desen dizisi içerir. Parametredeki formats
desenler , Özel Tarih ve Saat Biçim Dizeleri tablosundaki bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve Saat Biçimi Dizeleri tablosundan önceden tanımlanmış bir deseni tanımlayan tek bir standart biçim tanımlayıcısından oluşur.
Özel biçim deseninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için provider
sabit kültürü ve her özel biçim tanımlayıcısının en geniş biçimini kullanın. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.
içinde kullanılan s
belirli tarih ve saat simgeleri ve dizeleri (belirli bir dildeki haftanın günlerinin adları gibi), standart biçim tanımlayıcı dizesiyse format
tam biçimi s
olduğu gibi parametresi tarafından provider
tanımlanır. provider
parametresi aşağıdakilerden biri olabilir:
CultureInfo yorumlamak
s
için kullanılan kültürü temsil eden bir nesne. DateTimeFormatInfo özelliği tarafından DateTimeFormat döndürülen nesne, içindekis
sembolleri ve biçimlendirmeyi tanımlar.DateTimeFormatInfo Tarih ve saat verilerinin biçimini tanımlayan nesne.
Yöntemi, biçimlendirme bilgilerini sağlayan nesneyi veya DateTimeFormatInfo nesneyi döndüren CultureInfo özel IFormatProvider bir uygulamaGetFormat.
ise provider
null
, CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.
parametresi, styles
tarafından tanımlanmayan format
boşluğun DateTimeStyles içinde görünüp görünmeyeceğini s
ve ayrıştırma işleminin kesin davranışını denetleyen sabit listesinin bir veya daha fazla üyesini içerir. Aşağıdaki tabloda, numaralandırmanın her üyesinin DateTimeStyles yönteminin çalışmasını TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) nasıl etkilediği açıklanmaktadır.
DateTimeStyles üyesi | Description |
---|---|
AdjustToUniversal | ayrıştırıp s gerekirse UTC'ye dönüştürür. s Saat dilimi uzaklığı içeriyorsa veya saat dilimi bilgisi içermiyorsa s ancak styles bayrağı içeriyorsaDateTimeStyles.AssumeLocal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değeri UTC'ye dönüştürmek için çağrılar ToUniversalTime ve özelliğini olarak DateTimeKind.UtcayarlarKind. UTC'yi temsil ettiğini gösterirse s veya saat dilimi bilgilerini içermiyorsa s ancak styles bayrağını içeriyorsaDateTimeStyles.AssumeUniversal, yöntemi dizeyi ayrıştırıyor, döndürülen DateTime değer üzerinde saat dilimi dönüştürmesi gerçekleştirmez ve özelliğini olarak DateTimeKind.UtcayarlarKind. Diğer durumlarda, bayrağın hiçbir etkisi olmaz. |
AllowInnerWhite | tarafından format tanımlanmayan boşluğun herhangi bir tarih veya saat öğesi arasında görünebileceğini belirtir. |
AllowLeadingWhite | tarafından format tanımlanmayan boşluğun başında s görünebileceğini belirtir. |
AllowTrailingWhite | tarafından format tanımlanmayan boşluğun sonunda s görünebileceğini belirtir. |
AllowWhiteSpaces | tarafından format tanımlanmayan s baştaki, iç ve sondaki boşlukları içerebileceğini belirtir. |
AssumeLocal | Herhangi bir saat dilimi bilgisi yoksa s , yerel saati temsil ettiğinin varsayıldığını belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa, Kind döndürülen DateTime değerin özelliği olarak DateTimeKind.Localayarlanır. |
AssumeUniversal | Herhangi bir saat dilimi bilgisi yoksa s UTC'yi temsil ettiğini belirtir. DateTimeStyles.AdjustToUniversal Bayrağı yoksa yöntemi döndürülen değeri UTC'den yerel saate dönüştürür DateTime ve özelliğini olarak DateTimeKind.LocalayarlarKind. |
NoCurrentDateDefault | s Tarih bilgisi olmayan bir saat içeriyorsa, dönüş değerinin tarihi olarak DateTime.MinValue.Date ayarlanır. |
None | s parametresi varsayılan değerler kullanılarak ayrıştırılır. içinde format bulunandan başka boşluk yoktur. Tarih bileşeni yoksa s , döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır. Saat dilimi bilgisi içermiyorsa s , Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Unspecifiedayarlanır. içinde s saat dilimi bilgileri varsa, saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak DateTimeKind.Localayarlanır. |
RoundtripKind | Saat dilimi bilgilerini içeren dizeler için, özelliği olarak ayarlanmış bir DateTime değere Kind dönüştürmeyi engellemeye DateTimeKind.Localçalışır. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler. |
Arayanlara Notlar
.NET Framework 4'te yöntem, TryParseExact ayrıştırılacak dizenin bir saat bileşeni ve uyuşmayan bir AM/PM belirteci içerip içermediğini döndürürfalse
. .NET Framework 3.5 ve önceki sürümlerde AM/PM göstergesi yoksayılır.
Ayrıca bkz.
- ParseExact
- CultureInfo
- DateTimeFormatInfo
- .NET Framework'te Tarih ve Saat Dizelerini Ayrıştırma
- Standart Tarih ve Saat Biçim Dizeleri
- Özel Tarih ve Saat Biçim Dizeleri
Şunlara uygulanır
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin