DateTime.TryParse 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 ve 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 |
|---|---|
| TryParse(ReadOnlySpan<Char>, 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. |
| TryParse(String, DateTime) |
Bir tarih ve saatin belirtilen dize gösterimini 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. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime) |
Bir karakter aralığını bir değere ayrıştırmaya çalışır. |
| TryParse(String, IFormatProvider, DateTime) |
Bir dizeyi bir değere ayrıştırmaya çalışır. |
| TryParse(String, IFormatProvider, DateTimeStyles, DateTime) |
Tarih ve saatin belirtilen dize gösterimini, belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak 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. |
| TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime) |
Belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak tarih ve saatin span gösterimini 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. |
Açıklamalar
Important
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.
TryParse(ReadOnlySpan<Char>, 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 TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Dönüştürülecek tarih ve saati içeren dize.
- 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 sboş bir dize ("") ise veya tarih ve saatin geçerli dize gösterimini içermiyorsa null dönüştürme 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.
Şunlara uygulanır
TryParse(String, DateTime)
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
Bir tarih ve saatin belirtilen dize gösterimini 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 TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(string s, out DateTime result);
public static bool TryParse(string? s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean
Parametreler
- s
- String
Dönüştürülecek tarih ve saati içeren dize.
- 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 sboş bir dize ("") ise veya tarih ve saatin geçerli dize gösterimini içermiyorsa null dönüştürme 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.
Örnekler
Aşağıdaki örnek yönteme DateTime.TryParse(String, DateTime) bir dizi tarih ve saat dizesi geçirir.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
"2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
"5/01/2008 14:57:32.80 -07:00",
"1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
"Fri, 15 May 2009 20:10:57 GMT" };
DateTime dateValue;
Console.WriteLine("Attempting to parse strings using {0} culture.",
CultureInfo.CurrentCulture.Name);
foreach (string dateString in dateStrings)
{
if (DateTime.TryParse(dateString, out dateValue))
Console.WriteLine(" Converted '{0}' to {1} ({2}).", dateString,
dateValue, dateValue.Kind);
else
Console.WriteLine(" Unable to parse '{0}'.", dateString);
}
}
}
// The example displays output like the following:
// Attempting to parse strings using en-US culture.
// Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
// Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
// Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
// Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
// Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
// Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
// Unable to parse '16-05-2009 1:00:32 PM'.
// Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
open System
open System.Globalization
let dateStrings =
[ "05/01/2009 14:57:32.8"; "2009-05-01 14:57:32.8"
"2009-05-01T14:57:32.8375298-04:00"; "5/01/2008"
"5/01/2008 14:57:32.80 -07:00"
"1 May 2008 2:57:32.8 PM"; "16-05-2009 1:00:32 PM"
"Fri, 15 May 2009 20:10:57 GMT" ]
printfn $"Attempting to parse strings using {CultureInfo.CurrentCulture.Name} culture."
for dateString in dateStrings do
match DateTime.TryParse dateString with
| true, dateValue ->
printfn $" Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
| _ ->
printfn $" Unable to parse '{dateString}'."
// The example displays output like the following:
// Attempting to parse strings using en-US culture.
// Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
// Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
// Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
// Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
// Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
// Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
// Unable to parse '16-05-2009 1:00:32 PM'.
// Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
"2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
"5/01/2008 14:57:32.80 -07:00",
"1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
"Fri, 15 May 2009 20:10:57 GMT"}
Dim dateValue As Date
Console.WriteLine("Attempting to parse strings using {0} culture.", _
CultureInfo.CurrentCulture.Name)
For Each dateString As String In dateStrings
If Date.TryParse(dateString, dateValue) Then
Console.WriteLine(" Converted '{0}' to {1} ({2}).", dateString, _
dateValue, dateValue.Kind)
Else
Console.WriteLine(" Unable to parse '{0}'.", dateString)
End If
Next
End Sub
End Module
' The example displays output like the following:
' Attempting to parse strings using en-US culture.
' Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
' Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
' Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
' Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
' Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
' Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
' Unable to parse '16-05-2009 1:00:32 PM'.
' Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Açıklamalar
DateTime.TryParse(String, DateTime) yöntemi yöntemine DateTime.Parse(String) benzer, ancak TryParse(String, DateTime) dönüştürme başarısız olursa yöntemi bir özel durum oluşturmaz.
Dize s , geçerli kültür tarafından örtük olarak sağlanan geçerli DateTimeFormatInfo nesnedeki biçimlendirme bilgileri kullanılarak ayrıştırılır.
Bu yöntem mümkünse tanınmayan verileri yoksaymaya çalışır ve eksik ay, gün ve yıl bilgilerini geçerli tarihle doldurur. Yalnızca bir tarih içeriyorsa s ve saat yoksa, bu yöntem saatin gece yarısı 12:00 olduğunu varsayar. İki basamaklı yıl içeren bir tarih bileşeni içeriyorsa s , özelliğin değerine Calendar.TwoDigitYearMax göre geçerli kültürün geçerli takviminde bir yıla dönüştürülür. içindeki tüm baştaki, içteki veya sondaki boşluk karakterleri s yoksayılır. Tarih ve saat, önde ve sonda birer adet SAYI İŞARETİ ('#', U+0023) karakteriyle çevrelenebilir ve bir veya daha fazla SIFIR karakteri (U+0000) ile takip edilebilir.
DateTime.TryParse(String, DateTime) yöntemi geçerli kültürün biçimlendirme kurallarını kullanarak bir tarih ve saatin dize gösterimini ayrıştırmaya çalıştığından, farklı kültürler arasında belirli bir dizeyi ayrıştırmaya çalışmak başarısız olabilir veya farklı sonuçlar döndürebilir. Belirli bir tarih ve saat biçimi farklı yerel ayarlar arasında ayrıştırılacaksa yöntemini veya yöntemin DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) aşırı yüklemelerinden birini kullanın TryParseExact ve bir biçim belirtici sağlayın.
Eğer s, geçerli takvimde, artık yıl içindeki bir artık günün dize olarak temsili ise, yöntem s başarıyla ayrıştırılır. Geçerli kültürün geçerli takviminde artık olmayan bir yılda artık günün dize gösterimiyse s ayrıştırma işlemi başarısız olur ve yöntemi döndürür false.
Saat dilimi bilgisi içermiyorsas, result yöntemi döndürdüğünde özelliği olan DateTimeKind bir DateTimeKind.Unspecified değer içerir. Ayrıştırılacak dize saat dilimi bilgilerini içeriyorsa, result yöntemin döndürdüğü özelliği DateTime olan Kind bir DateTimeKind.Local değer içerir.
Arayanlara Notlar
Biçimlendirme, geçerli DateTimeFormatInfo nesnenin özelliklerinden etkilenir ve varsayılan olarak Denetim Masası'ndaki Bölge ve Dil Seçenekleri öğesinden türetilir. Yöntemi TryParse beklenmedik şekilde başarısız olabilir ve geçerli False ve DateSeparator özellikler aynı değere ayarlanırsa döndürebilirTimeSeparator.
Ayrıca bkz.
- Parse
- 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
- Örneği: .NET Core WinForms Biçimlendirme Yardımcı Programı (C#)
- Örneği: .NET Core WinForms Biçimlendirme Yardımcı Programı (Visual Basic)
Şunlara uygulanır
TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
Bir karakter aralığını bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = ISpanParsable<DateTime>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As DateTime) As Boolean
Parametreler
- s
- ReadOnlySpan<Char>
Ayrıştırılacak karakterlerin yayılma alanı.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- DateTime
Bu yöntem döndürdüğünde, başarıyla ayrıştırma sişleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa s ; değilse, false.
Şunlara uygulanır
TryParse(String, IFormatProvider, DateTime)
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
Bir dizeyi bir değere ayrıştırmaya çalışır.
public:
static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = IParsable<DateTime>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out DateTime result);
static member TryParse : string * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As DateTime) As Boolean
Parametreler
- s
- String
Ayrıştırmak için dize.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- result
- DateTime
Bu yöntem döndürdüğünde, başarıyla ayrıştırma s işleminin sonucunu veya hatada tanımlanmamış bir değeri içerir.
Döndürülenler
true başarıyla ayrıştırıldıysa s ; değilse, false.
Şunlara uygulanır
TryParse(String, IFormatProvider, DateTimeStyles, DateTime)
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
Tarih ve saatin belirtilen dize gösterimini, belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak 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 TryParse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
public static bool TryParse(string? s, IFormatProvider? provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTime) As Boolean
Parametreler
- s
- String
Dönüştürülecek tarih ve saati içeren dize.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- styles
- 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 sboş bir dize ("") ise veya tarih ve saatin geçerli dize gösterimini içermiyorsa null dönüştürme 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
styles geçerli DateTimeStyles bir değer değil.
-veya-
stylesgeçersiz bir değer bileşimi DateTimeStyles içerir (örneğin, hem hem AssumeLocalde AssumeUniversal ).
provider nötr bir kültürdür ve ayrıştırma işleminde kullanılamaz.
Örnekler
Aşağıdaki örnekte yöntemi gösterilmektedir DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) .
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string dateString;
CultureInfo culture;
DateTimeStyles styles;
DateTime dateResult;
// Parse a date and time with no styles.
dateString = "03/01/2009 10:00 AM";
culture = CultureInfo.CreateSpecificCulture("en-US");
styles = DateTimeStyles.None;
if (DateTime.TryParse(dateString, culture, styles, out dateResult))
Console.WriteLine("{0} converted to {1} {2}.",
dateString, dateResult, dateResult.Kind);
else
Console.WriteLine("Unable to convert {0} to a date and time.",
dateString);
// Parse the same date and time with the AssumeLocal style.
styles = DateTimeStyles.AssumeLocal;
if (DateTime.TryParse(dateString, culture, styles, out dateResult))
Console.WriteLine("{0} converted to {1} {2}.",
dateString, dateResult, dateResult.Kind);
else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
// Parse a date and time that is assumed to be local.
// This time is five hours behind UTC. The local system's time zone is
// eight hours behind UTC.
dateString = "2009/03/01T10:00:00-5:00";
styles = DateTimeStyles.AssumeLocal;
if (DateTime.TryParse(dateString, culture, styles, out dateResult))
Console.WriteLine("{0} converted to {1} {2}.",
dateString, dateResult, dateResult.Kind);
else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
// Attempt to convert a string in improper ISO 8601 format.
dateString = "03/01/2009T10:00:00-5:00";
if (DateTime.TryParse(dateString, culture, styles, out dateResult))
Console.WriteLine("{0} converted to {1} {2}.",
dateString, dateResult, dateResult.Kind);
else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
// Assume a date and time string formatted for the fr-FR culture is the local
// time and convert it to UTC.
dateString = "2008-03-01 10:00";
culture = CultureInfo.CreateSpecificCulture("fr-FR");
styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
if (DateTime.TryParse(dateString, culture, styles, out dateResult))
Console.WriteLine("{0} converted to {1} {2}.",
dateString, dateResult, dateResult.Kind);
else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
}
}
// The example displays the following output to the console:
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
// 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
// Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
// 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
open System
open System.Globalization
[<EntryPoint>]
let main _ =
// Parse a date and time with no styles.
let dateString = "03/01/2009 10:00 AM"
let culture = CultureInfo.CreateSpecificCulture "en-US"
let styles = DateTimeStyles.None
match DateTime.TryParse(dateString, culture, styles) with
| true, dateResult ->
printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
| _ ->
printfn $"Unable to convert {dateString} to a date and time."
// Parse the same date and time with the AssumeLocal style.
let styles = DateTimeStyles.AssumeLocal
match DateTime.TryParse(dateString, culture, styles) with
| true, dateResult ->
printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
| _ ->
printfn $"Unable to convert {dateString} to a date and time."
// Parse a date and time that is assumed to be local.
// This time is five hours behind UTC. The local system's time zone is
// eight hours behind UTC.
let dateString = "2009/03/01T10:00:00-5:00"
let styles = DateTimeStyles.AssumeLocal
match DateTime.TryParse(dateString, culture, styles) with
| true, dateResult ->
printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
| _ ->
printfn $"Unable to convert {dateString} to a date and time."
// Attempt to convert a string in improper ISO 8601 format.
let dateString = "03/01/2009T10:00:00-5:00"
match DateTime.TryParse(dateString, culture, styles) with
| true, dateResult ->
printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
| _ ->
printfn $"Unable to convert {dateString} to a date and time."
// Assume a date and time string formatted for the fr-FR culture is the local
// time and convert it to UTC.
let dateString = "2008-03-01 10:00"
let culture = CultureInfo.CreateSpecificCulture "fr-FR"
let styles = DateTimeStyles.AdjustToUniversal ||| DateTimeStyles.AssumeLocal
match DateTime.TryParse(dateString, culture, styles) with
| true, dateResult ->
printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
| _ ->
printfn $"Unable to convert {dateString} to a date and time."
0
// The example displays the following output to the console:
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
// 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
// 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
// Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
// 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim dateString As String
Dim culture As CultureInfo
Dim styles As DateTimeStyles
Dim dateResult As DateTime
' Parse a date and time with no styles.
dateString = "03/01/2009 10:00 AM"
culture = CultureInfo.CreateSpecificCulture("en-US")
styles = DateTimeStyles.None
If DateTime.TryParse(dateString, culture, styles, dateResult) Then
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, dateResult, dateResult.Kind)
Else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End If
' Parse the same date and time with the AssumeLocal style.
styles = DateTimeStyles.AssumeLocal
If DateTime.TryParse(dateString, culture, styles, dateResult)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, dateResult, dateResult.Kind)
Else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End If
' Parse a date and time that is assumed to be local.
' This time is five hours behind UTC. The local system's time zone is
' eight hours behind UTC.
dateString = "2009/03/01T10:00:00-5:00"
styles = DateTimeStyles.AssumeLocal
If DateTime.TryParse(dateString, culture, styles, dateResult)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, dateResult, dateResult.Kind)
Else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End If
' Attempt to convert a string in improper ISO 8601 format.
dateString = "03/01/2009T10:00:00-5:00"
If DateTime.TryParse(dateString, culture, styles, dateResult)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, dateResult, dateResult.Kind)
Else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End If
' Assume a date and time string formatted for the fr-FR culture is the local
' time and convert it to UTC.
dateString = "2008-03-01 10:00"
culture = CultureInfo.CreateSpecificCulture("fr-FR")
styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
If DateTime.TryParse(dateString, culture, styles, dateResult)
Console.WriteLine("{0} converted to {1} {2}.", _
dateString, dateResult, dateResult.Kind)
Else
Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
End If
End Sub
End Module
' The example displays the following output to the console:
' 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
' 03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
' 2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
' Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
' 2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Açıklamalar
DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) yöntemi tarih, saat ve saat dilimi bilgilerini içerebilen bir dizeyi ayrıştırır. DateTime.Parse(String, IFormatProvider, DateTimeStyles) yöntemine benzerdir, ancak DateTime.TryParse(String, DateTime) yöntemi, dönüştürme başarısız olursa bir hata oluşturmaz.
Bu yöntem tanınmayan verileri yoksaymaya ve giriş dizesini (s) tamamen ayrıştırmaya çalışır.
s bir saat içeriyorsa ancak tarih içermiyorsa, yöntem varsayılan olarak geçerli tarihi kullanır veya stylesNoCurrentDateDefault bayrağını içeriyorsa DateTime.Date.MinValue kullanır. Tarih içeriyorsa s ancak saat yoksa, varsayılan saat olarak gece yarısı 12:00 kullanılır. Bir tarih mevcutsa ancak yıl bileşeni yalnızca iki rakamdan oluşuyorsa, özelliğin değerine provider göre parametrenin Calendar.TwoDigitYearMax geçerli takviminde bir yıla dönüştürülür.
s içindeki baştaki, ortadaki veya sondaki tüm boşluk karakterleri yok sayılır. Tarih ve saat, önde ve sonda birer adet SAYI İŞARETİ ('#', U+0023) karakteriyle çevrelenebilir ve bir veya daha fazla SIFIR karakteri (U+0000) ile takip edilebilir.
Tarih ve saat öğelerinin yanı sıra tarih ve saatlerde kullanılan adlar ve simgeler için belirli geçerli biçimler parametresi tarafından provider tanımlanır ve bunlar aşağıdakilerden biri olabilir:
-
CultureInfo parametresinde
sbiçimlendirmesi kullanılan kültürü temsil eden nesne. DateTimeFormatInfo özelliği tarafından CultureInfo.DateTimeFormat döndürülen nesne, içindeskullanılan biçimlendirmeyi tanımlar. -
DateTimeFormatInfo içinde
skullanılan biçimlendirmeyi tanımlayan nesne. - Özel IFormatProvider bir uygulama.
IFormatProvider.GetFormat yöntemi, içinde DateTimeFormatInfokullanılan biçimlendirmeyi tanımlayan bir
snesne döndürür.
Eğer providernull ise, geçerli kültür kullanılır.
Eğer s, geçerli takvimde, artık yıl içindeki bir artık günün dize olarak temsili ise, yöntem s başarıyla ayrıştırılır. Mevcut takvimde artık olmayan bir yıldaki artık günün dize gösterimi s ise, ayrıştırma işlemi başarısız olur ve yöntem provider döner.
parametresi, styles ayrıştırılan dizenin tam yorumunu ve ayrıştırma işleminin bunu nasıl işlemesi gerektiğini tanımlar. Aşağıdaki tabloda açıklandığı gibi, numaralandırmanın DateTimeStyles bir veya daha fazla üyesi olabilir.
| DateTimeStyles üyesi | Description |
|---|---|
| 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 | Geçerli olsa da, bu değer yoksayılır. İç boşluklara, s elemanlarının tarih ve saatinde izin verilir. |
| AllowLeadingWhite | Geçerli olsa da, bu değer yoksayılır. Tarih ve saat öğelerinde s öncesinde boşluk bırakılmasına izin verilir. |
| AllowTrailingWhite | Geçerli olsa da, bu değer yoksayılır.
s öğesinin tarih ve saat öğelerindeki son boşluklara izin verilir. |
| AllowWhiteSpaces |
s Baştaki, iç ve sondaki beyaz boşlukları içerebileceğini belirtir. Bu varsayılan davranıştır. Daha kısıtlayıcı bir DateTimeStyles numaralandırma değeri DateTimeStyles.None sağlayarak geçersiz kılınamaz. |
| 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. |
| None | Geçerli olsa da, bu değer yoksayılır. |
| RoundtripKind | Saat dilimi bilgilerini içeren dizeler için, bir tarih ve saat dizesinin bir DateTime değere, Kind özelliği DateTimeKind.Local olarak ayarlanmış olarak, dönüştürülmesini engellemeye çalışır. Tipik olarak, bu tür bir dize, "o", "r" veya "u" standart biçim tanımlayıcıları kullanılarak DateTime.ToString(String) yöntemini çağırarak oluşturulur. |
Eğer s saat dilimi bilgisi içermiyorsa, bir DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) bayrak aksini belirtmediği sürece, DateTime yöntemi Kind değeri döndürür ve bu değerin DateTimeKind.Unspecified özelliği styles olur.
s Saat dilimi veya saat dilimi uzaklığı bilgilerini içeriyorsa, DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) yöntem gerekli zaman dönüştürme işlemlerini gerçekleştirir ve aşağıdakilerden birini döndürür:
- Tarih ve saati yerel zamanı yansıtan ve DateTime özelliği Kind olan bir DateTimeKind.Local değeri.
- Ya da
stylesAdjustToUniversal bayrağını içeriyorsa, tarihi ve saati UTC'yi yansıtan ve DateTime özelliği Kind olan bir DateTimeKind.Utc değeri.
Bu davranış bayrağı kullanılarak DateTimeStyles.RoundtripKind geçersiz kılınabilir.
Özel kültürleri çözümleme
Özel bir kültür için oluşturulan bir tarih ve saat dizesini ayrıştırırsanız, ayrıştırma işleminin başarılı olma olasılığını artırmak için TryParseExact yerine TryParse yöntemini kullanın. Özel kültür tarih ve saat dizesi karmaşık ve ayrıştırılması zor olabilir. TryParse yöntemi, bir dizeyi çeşitli örtük ayrıştırma desenleriyle ayrıştırmaya çalışır ve bunların tümü başarısız olabilir. Buna karşılık, TryParseExact yöntemi başarılı olma olasılığı olan bir veya daha fazla ayrıştırma desenini açıkça belirlemenizi gerektirir.
Özel kültürler hakkında daha fazla bilgi için, System.Globalization.CultureAndRegionInfoBuilder sınıfına bakın.
Arayanlara Notlar
Biçimlendirme, parametresi tarafından DateTimeFormatInfo sağlanan geçerli provider nesnenin özelliklerinden etkilenir. Yöntemi TryParse beklenmedik şekilde başarısız olabilir ve geçerli False ve DateSeparator özellikler aynı değere ayarlanırsa döndürebilirTimeSeparator.
Ayrıca bkz.
- Parse
- 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
TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
- Kaynak:
- DateTime.cs
Belirtilen kültüre özgü biçim bilgilerini ve biçimlendirme stilini kullanarak tarih ve saatin span gösterimini 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 TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, System.Globalization.DateTimeStyles styles, out DateTime result);
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider provider, System.Globalization.DateTimeStyles styles, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, styles 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ı.
- provider
- IFormatProvider
hakkında skültüre özgü biçimlendirme bilgileri sağlayan bir nesne.
- styles
- 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 sboş bir dize ("") ise veya tarih ve saatin geçerli dize gösterimini içermiyorsa null dönüştürme 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.