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.
Geçerli ToBinary nesnesinin değerini ikili değere dönüştürmek için DateTime yöntemini kullanın. Daha sonra, özgün FromBinary nesnesini yeniden oluşturmak için ikili değeri ve DateTime yöntemini kullanın.
Önemli
Bazı durumlarda, DateTime yöntemi tarafından döndürülen FromBinary değeri, DateTime yöntemine sağlanan özgün ToBinary değeriyle aynı değildir. Daha fazla bilgi için sonraki "Yerel Saat Ayarlaması" bölümüne bakın.
DateTime yapısı, belirtilen zaman değerinin yerel saat, Eşgüdümlü Evrensel Saat (UTC) veya bunlardan hiçbiri olup olmadığını gösteren özel bir Kind alanından ve 100 nanosaniyelik tıkların sayısını içeren özel bir Ticks alanıyla birleştirilmesinden oluşur.
Yerel saat ayarlaması
Yerel saat dilimine ayarlanmış Eşgüdümlü Evrensel Saat olan yerel saat, DateTime özelliği Kinddeğerine sahip olan bir Local yapısıyla temsil edilir. DateTime yöntemi tarafından oluşturulan ikili gösterimden yerel bir ToBinary değeri geri yüklerken, FromBinary yöntemi yeniden oluşturulan değeri özgün değere eşit olmayacak şekilde ayarlayabilir. Bu, aşağıdaki koşullar altında oluşabilir:
Yerel bir DateTime nesnesi ToBinary yöntemiyle bir saat diliminde seri hale getirilirse ve ardından FromBinary yöntemiyle farklı bir saat diliminde seri durumdan çıkarılırsa, sonuçta elde edilen DateTime nesnesi tarafından temsil edilen yerel saat otomatik olarak ikinci saat dilimine ayarlanır.
Örneğin, saat 15:00'te yerel saati temsil eden bir DateTime nesnesi düşünün. ABD Pasifik Saat diliminde yürütülen bir uygulama, bu ToBinary nesnesini ikili değere dönüştürmek için DateTime yöntemini kullanır. Abd Doğu Saat diliminde yürütülen başka bir uygulama daha sonra ikili değeri yeni bir FromBinary nesnesine dönüştürmek için DateTime yöntemini kullanır. Yeni DateTime nesnesinin değeri 18:00'dir ve özgün 3 P.M. değeriyle aynı zaman noktasını temsil eder, ancak Doğu Saat dilimindeki yerel saate ayarlanır.
Yerel DateTime değerinin ikili gösterimi, FromBinary çağrıldığı sistemin yerel saat diliminde geçersiz bir saati temsil ederse, saat geçerli olacak şekilde ayarlanır.
Örneğin, standart saatten gün ışığından yararlanma saatine geçiş, 14 Mart 2010'da, saat bir saat ilerlediğinde 02:00'de, saat 03:00'e kadar ABD Pasifik Saat diliminde gerçekleşir. Bu saat aralığı geçersiz bir saat, yani bu saat diliminde mevcut olmayan bir zaman aralığıdır. Aşağıdaki örnekte, bu aralık içinde kalan bir saat ToBinary yöntemiyle ikili değere dönüştürüldüğünde ve ardından FromBinary yöntemi tarafından geri yüklendiğinde özgün değerin geçerli bir saat olacak şekilde ayarlandığı gösterilmektedir. Örnekte gösterildiği gibi, belirli bir tarih ve saat değerinin TimeZoneInfo.IsInvalidTime yöntemine geçirerek değişikliğe tabi olup olmayacağını belirleyebilirsiniz.
using System; public class Example { public static void Main() { DateTime localDate = new DateTime(2010, 3, 14, 2, 30, 0, DateTimeKind.Local); long binLocal = localDate.ToBinary(); if (TimeZoneInfo.Local.IsInvalidTime(localDate)) Console.WriteLine($"{localDate} is an invalid time in the {TimeZoneInfo.Local.StandardName} zone."); DateTime localDate2 = DateTime.FromBinary(binLocal); Console.WriteLine($"{localDate} = {localDate2}: {localDate.Equals(localDate2)}"); } } // The example displays the following output: // 3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone. // 3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: Falseopen System let localDate = DateTime(2010, 3, 14, 2, 30, 0, DateTimeKind.Local) let binLocal = localDate.ToBinary() if TimeZoneInfo.Local.IsInvalidTime localDate then printfn $"{localDate} is an invalid time in the {TimeZoneInfo.Local.StandardName} zone." let localDate2 = DateTime.FromBinary binLocal printfn $"{localDate} = {localDate2}: {localDate.Equals localDate2}" // The example displays the following output: // 3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone. // 3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: FalseModule Example Public Sub Main() Dim localDate As Date = DateTime.SpecifyKind(#03/14/2010 2:30AM#, DateTimeKind.Local) Dim binLocal As Long = localDate.ToBinary() If TimeZoneInfo.Local.IsInvalidTime(localDate) Then Console.WriteLine("{0} is an invalid time in the {1} zone.", _ localDate, _ TimeZoneInfo.Local.StandardName) End If Dim localDate2 As Date = DateTime.FromBinary(binLocal) Console.WriteLine("{0} = {1}: {2}", _ localDate, localDate2, localDate.Equals(localDate2)) End Sub End Module ' The example displays the following output: ' 3/14/2010 2:30:00 AM is an invalid time in the Pacific Standard Time zone. ' 3/14/2010 2:30:00 AM = 3/14/2010 3:30:00 AM: False