System.DateTime.TryParse yöntemi

Bu makale, bu API'nin başvuru belgelerine ek açıklamalar sağlar.

DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) yöntemi tarih, saat ve saat dilimi bilgilerini içerebilen bir dizeyi ayrıştırır. Yöntemine DateTime.Parse(String, IFormatProvider, DateTimeStyles) benzer, ancak DateTime.TryParse(String, DateTime) dönüştürme başarısız olursa yöntemi bir özel durum oluşturmaz.

Bu yöntem tanınmayan verileri yoksaymaya ve giriş dizesini (s) tamamen ayrıştırmaya çalışır. s Saat içeriyorsa ancak tarih yoksa, yöntemi varsayılan olarak geçerli tarihin yerini alır veya styles bayrağını NoCurrentDateDefault içeriyorsa yerine DateTime.Date.MinValuekullanı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 Calendar.TwoDigitYearMax göre parametrenin provider 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, bir çift baştaki ve sondaki SAYI İşaretİ karakterleriyle ('#', U+0023) köşeli ayraçla eklenebilir ve bir veya daha fazla NULL karakterle (U+0000) izlenebilir.

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:

ise providernull, geçerli kültür kullanılır.

Geçerli takvimde artık yıl içindeki bir artık günün dize gösterimi ise s , yöntem başarıyla ayrıştırılır s . geçerli takviminde providerartık olmayan bir yıldaki artık günün dize gösterimi ise s ayrıştırma işlemi başarısız olur ve yöntemi döndürürfalse.

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 Açıklama
AdjustToUniversal ayrıştırıp s gerekirse UTC'ye dönüştürür. Saat s dilimi uzaklığı içeriyorsa veya saat dilimi bilgisi içermiyorsa s ancak styles bayrağını 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ğı 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 Geçerli olsa da, bu değer yoksayılır. 'nin tarih ve saat öğelerinde siç boşluklara izin verilir.
AllowLeadingWhite Geçerli olsa da, bu değer yoksayılır. 'nin tarih ve saat öğelerinde sbaştaki boşluklara izin verilir.
AllowTrailingWhite Geçerli olsa da, bu değer yoksayılır. öğesinin tarih ve saat öğelerinde ssondaki boşluklara izin verilir.
AllowWhiteSpaces s Baştaki, iç ve sondaki beyaz boşlukları içerebileceğini belirtir. Bu varsayılan davranıştır. gibi DateTimeStyles.Nonedaha kısıtlayıcı DateTimeStyles bir numaralandırma değeri 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ğı 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ğinin varsayıldığını 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.
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 özelliği olarak ayarlanmış bir DateTime değere Kind dönüştürülmesini engellemeye DateTimeKind.Localçalışır. Bu tür bir dize genellikle "o", "r" veya "u" standart biçim tanımlayıcıları kullanılarak yöntemini çağırarak DateTime.ToString(String) oluşturulur.

Saat dilimi bilgisi içermiyorsas, bir bayrak aksini DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) belirtmediği sürece yöntemi özelliği DateTimeKind.Unspecified olan Kind bir styles değer döndürürDateTime. 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:

Bu davranış bayrağı kullanılarak DateTimeStyles.RoundtripKind geçersiz kılınabilir.

Özel kültürleri ayrıştırma

Ö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 yöntemi yerine TryParse yöntemini kullanınTryParseExact. Ö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 sınıfına System.Globalization.CultureAndRegionInfoBuilder bakın.