Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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. 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 | Açıklama |
|---|---|
| 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.