DateOnly ve TimeOnly — NET6 Yenilikleri
İlişkisel veritabanları(Relational Database) kullandıysanız karşılaşmanızın mümkün olduğu sorunlardan bir tanesi veritabanının bize sunmuş olduğu alanlarımızın Tarih ve Saat tipleri arasındaki karışıklık. Bazı veritabanları Tarih ve Saat değerleri saklayabilmemiz için ayrı ayrı tipler sağlıyorken bu durum bazılarında mümkün olmuyor. TarihSaat (DateTime) olarak bir alan açarak içerisinde istediğimiz tarihi saatsiz şekilde saklayamıyoruz. Onun yerine saat bilgisini hep 00:00:00 şeklinde tutuyoruz.
Bu durum sadece veritabanları için geçerli değil aynı zamanda kullanmış olduğumuz programlama dillerinde de Tarih ve Saat bilgileri hep tek tip değişkenler üzerinde tutulmaya çalışılıyor. Bunu da yine tüm programlama dilleri için söyleyemeyiz elbet ama en azından C# da böyleydi durum. DateTime değişkeni tanımlayıp içerisinde sadece tarih değeri atamış olsak bile bu değişken içerisindeki saat bilgisi hep var oluyordu. (00:00:00 olarak) C# DateTime tipindekideğişkenler için çok güzel property ler ve metodlar ekleyip hayatımızı bir hayli kolaylaştırmış olsa da NET6 ile birlikte artık bu işlerle sizi uğraştırmayalım ve DateOnly ve TimeOnly tipinde değişkenleri de hizmetinize sunalım demişler.
NET6 öncesindeki herhangi bir framework de aşağıdaki gibi bir kullanımı mevcut DateTime tipindeki bir değişkenin.
Bu ekrandaki kodların ise çalıştıktan sonraki çıktısı aşağıdaki gibi oluyor.
Çıktıdan da farkedileceği gibi Tarih(Date) ve Saat(Time) ile ilgili işlemlerin hepsi DateTime değişken tipi üzerinden gerçekleştiriliyor.
Şimdi ise NET6 ile birlikte hayatımıza girecek olan DateOnly ve TimeOnly değişken türleri için aynı işlemleri uygulayalım.
Yukarıdaki resme bakacak olursanız özellikle format belirtmeden saat bilgisini ekrana yazdırabiliyoruz. Ama DateTime içindeki saat bilgisini ancak formatlayarak elde edebiliyorduk. Bu ekrandaki kodların çıktısı ise aşağıdaki gibi olacaktır.
Farkedeceğiniz gibi doğrudan ekrana formatsız yazdırdığımızda bil hem tarih hem saat bilgisi görmüyoruz.
Microsoft burada hayatımızda çığır açan bir geliştirme yapmamış olsa da buradaki iyi düşünülmüş ve ihtiyaç duyulmuş geliştirme hayatımızı bir hayli kolaylaştıracaktır.
Başka bir yazıda görüşmek üzere.