VB.NET’de tarihsel veri tipleri, Date ve DateTime tipleri ile temsil edilir. Bu tipler, bir tarihin veya tarihin ve saat diliminin depolanmasına ve işlenmesine olanak tanır.
Date veri tipi, yalnızca tarihi (yıl, ay ve gün) depolar ve saat ve dakika bilgisi içermez. DateTime veri tipi ise tarihi ve saat dilimini (yıl, ay, gün, saat, dakika, saniye ve salise) depolar.
Aşağıda, tarih ve saat işlemleri için örnek kullanımlar verilmiştir:
‘ Geçerli tarihi almak için Dim simdi As Date = Date.Now Dim simdi2 As DateTime = DateTime.Now ‘ Belirli bir tarihi tanımlamak için Dim tarih1 As Date = #10/23/2022# Dim tarih2 As DateTime = #2022-02-23 12:00:00 PM# ‘ Tarihe gün ekleme/çıkarma Dim yeniTarih As Date = tarih1.AddDays(10) ‘ 10 gün sonrası Dim yeniTarih2 As DateTime = tarih2.AddDays(-5) ‘ 5 gün öncesi ‘ İki tarih arasındaki gün sayısını bulma Dim gunFarki As Integer = DateDiff(DateInterval.Day, tarih1, tarih2) ‘ Tarihi belirli bir formatta yazdırma Console.WriteLine(tarih1.ToString(“dd.MM.yyyy”)) ‘ çıktı: 23.10.2022 Console.WriteLine(tarih2.ToString(“yyyy-MM-dd HH:mm:ss”)) ‘ çıktı: 2022-02-23 12:00:00 ‘ Tarihi belirli bir formatta pars etme Dim tarih3 As Date = Date.ParseExact(“23/10/2022”, “dd/MM/yyyy”, CultureInfo.InvariantCulture) Dim tarih4 As DateTime = DateTime.ParseExact(“2022-02-23 12:00:00”, “yyyy-MM-dd HH:mm:ss”, CultureInfo.InvariantCulture) ‘ Tarihi farklı bir saat dilimine dönüştürme Dim istanbulSaat Dilimi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(“Turkey Standard Time”) Dim newYorkSaat Dilimi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(“Eastern Standard Time”) Dim tarih5 As DateTime = TimeZoneInfo.ConvertTime(tarih2, newYorkSaat Dilimi, istanbulSaat Dilimi)
Bu örneklerde, Date ve DateTime tarihsel veri tipleri ile bir dizi işlem gerçekleştirilmiştir. Örneğin, geçerli tarihi almak için Date.Now veya DateTime.Now kullanılabilir. Belirli bir tarihi tanımlamak için # işaretleri kullanılır ve tarihler arasındaki farkı hesaplamak için DateDiff fonksiyonu kullanılabilir. Ayrıca, ToString ve ParseExact metotları kullanılarak tarihleri farklı biçimlere dönüştürmek mümkündür.
Yukarıdaki örnekte TimeZoneInfo sınıfını kullanarak tarihi farklı bir saat dilimine dönüştürme örneği verilmemişti. Bu nedenle, aşağıdaki örneklerde bu konuya değineceğim.
Öncelikle, TimeZoneInfo sınıfı, belirli bir saat dilimi ile ilişkili bilgileri içerir. Örneğin, FindSystemTimeZoneById yöntemi kullanarak bir saat dilimi belirleyebilirsiniz:
Dim istanbulSaatDilimi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(“Turkey Standard Time”)
Bu kod, İstanbul için standart saat dilimini belirler. Benzer şekilde, Eastern Standard Time parametresi ABD’nin doğu sahilindeki standart saat dilimini belirler.
Daha sonra, ConvertTime yöntemi, belirtilen tarihi bir saat diliminden diğerine dönüştürür. Örneğin, aşağıdaki kod, tarih2 tarihini New York saat dilimine dönüştürür:
Dim newYorkSaatDilimi As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(“Eastern Standard Time”)
Dim tarih5 As DateTime = TimeZoneInfo.ConvertTime(tarih2, newYorkSaatDilimi, istanbulSaatDilimi)
Bu kod, tarih2 tarihini İstanbul’daki standart saat diliminden New York’taki standart saat dilimine dönüştürür. tarih5 değişkeninde depolanan sonuç, DateTime tarihsel veri tipinde tutulur.
Bu örnekte, TimeZoneInfo sınıfı kullanılarak tarihlerin farklı saat dilimlerine dönüştürülmesi gösterilmiştir. Bu, özellikle uluslararası bir uygulama geliştirirken farklı coğrafi konumlardaki kullanıcıların zaman dilimleriyle ilgili sorunları ele almak için yararlı olabilir.
