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.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 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:
- CultureInfo parametresinde
s
biçimlendirmesi kullanılan kültürü temsil eden nesne. DateTimeFormatInfo özelliği tarafından CultureInfo.DateTimeFormat döndürülen nesne, içindes
kullanılan biçimlendirmeyi tanımlar. - DateTimeFormatInfo içinde
s
kullanılan biçimlendirmeyi tanımlayan nesne. - Özel IFormatProvider bir uygulama. IFormatProvider.GetFormat yöntemi, içinde
s
kullanılan biçimlendirmeyi tanımlayan bir DateTimeFormatInfo nesne döndürür.
ise provider
null
, 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 provider
artı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 s iç boşluklara izin verilir. |
AllowLeadingWhite | Geçerli olsa da, bu değer yoksayılır. 'nin tarih ve saat öğelerinde s baştaki boşluklara izin verilir. |
AllowTrailingWhite | Geçerli olsa da, bu değer yoksayılır. öğesinin tarih ve saat öğelerinde s sondaki 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:
- DateTime Tarihi ve saati yerel saati yansıtan ve özelliği olan Kind bir değer.DateTimeKind.Local
styles
Veya bayrağını AdjustToUniversal içeriyorsa, tarihi ve saati UTC'yi yansıtan ve özelliği olan Kind bir DateTime değerdirDateTimeKind.Utc.
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.