Eğitim
Modül
C# kodunuzda doğru veri türünü seçme - Training
C# dilinde kullanılan çeşitli temel türlerden kodunuz için doğru veri türünü seçin.
Bu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
.NET tarihleri, saatleri ve saat dilimlerini temsil eden türler sağlar. Bu makalede bu türler açıklanmaktadır.
.NET, temel DateTime yapısına ek olarak saat dilimleriyle çalışmayı destekleyen aşağıdaki sınıfları sağlar:
Sistemde önceden tanımlanmış herhangi bir saat dilimiyle çalışmak, yeni saat dilimleri oluşturmak ve tarihleri ve saatleri bir saat diliminden diğerine kolayca dönüştürmek için bu sınıfı kullanın. Yeni geliştirme için TimeZone sınıfı yerine TimeZoneInfo sınıfını kullanın.
UTC'den uzaklığı (veya farkı) bilinen tarih ve saatlerle çalışmak için bu yapıyı kullanın. DateTimeOffset yapısı, tarih ve saat değerini, o zamanın UTC'ye göre ofsetiyle birleştirir. UTC ile ilişkisi nedeniyle, tek bir tarih ve saat değeri zaman içinde tek bir noktayı kesin olarak tanımlar. Bu, bir DateTimeOffset değerini bir bilgisayardan diğerine DateTime değerinden daha taşınabilir hale getirir.
Zaman ile çalışmayı desteklemek için aşağıdaki sınıflar:
Geçen süre veya iki tarih arasındaki fark gibi bir zaman aralığını temsil etmek için bu yapıyı kullanın.
Tarih içermeyen bir saati temsil etmek için bu yapıyı kullanın. Saat, belirli olmayan bir günün saatlerini, dakikalarını ve saniyelerini temsil eder.
TimeOnly
, 00:00:00.0000000
ile 23:59:59.9999999
arasında bir aralığa sahiptir. Bu tür, bir zamanı temsil etmek için bu türleri kullandığınızda kodunuzdaki DateTime
ve TimeSpan
türlerini değiştirmek için kullanılabilir. Daha fazla bilgi için bkz. DateOnly ve TimeOnly yapılarını kullanma.
Önemli
TimeOnly .NET Framework için kullanılamaz.
Bu, zamanın soyutlamasını sağlayan bir temel sınıftır. Geçerli saati denetlemenin yaygın bir yolu DateTime.UtcNow
veya DateTimeOffset.UtcNow
kullanmaktır. Ancak, bu türler "şimdi" olarak kabul edilenler üzerinde herhangi bir denetim sağlamaz. Bunu neden kontrol etmek isteyesin ki? Test edilebilirlik. Örneğin, olaydan 1 gün önce anımsatıcılar sağlayan bir olay izleme uygulaması yazdığınızı düşünün. Uygulamanın mantığı, olay saatini saatte bir denetlemek ve olaydan 24 saat önce kullanıcıyı uyarmaktır. Uygulama için testlerinizi yazarken, bu mantığı test etmek için DateTimeOffset.UtcNow
sarmalayan kendi türünüzü tanımlarsınız, ancak artık .NET sizin için mevcut olan bu soyutlama sınıfını sağlar.
Daha fazla bilgi için bkz. TimeProvidernedir? .
TimeProvider
türü .NET'e eklenir.
.NET Framework ve .NET Standard için TimeProvider
Microsoft.Bcl.TimeProvider NuGet paketitarafından sağlanır.
Tarihlerle çalışmayı desteklemek için aşağıdaki sınıflar:
Yalnızca tarihi temsil eden bir değerle çalışırken bu yapıyı kullanın. Tarih, günün başından sonuna kadar tüm günü temsil eder.
DateOnly
, 0001-01-01
ile 9999-12-31
arasında bir aralığa sahiptir. Bu tür, belirli bir saat olmadan ay, gün ve yıl birleşimini temsil eder. Daha önce kodunuzda saati göz ardı eden bir tarihi temsil eden bir DateTime
türü kullandıysanız, bu türü onun yerine kullanın. Daha fazla bilgi için bkz. DateOnly ve TimeOnly yapılarını kullanma.
Önemli
DateOnly .NET Framework için kullanılamaz.
Sonraki bölümde, saat dilimleriyle çalışmak ve tarih ve saatleri bir saat diliminden diğerine dönüştürebilen saat dilimi kullanan uygulamalar oluşturmak için ihtiyacınız olan bilgiler sağlanır.
Saat dilimine genel bakış
Saat dilimine duyarlı uygulamalar oluştururken kullanılan terminolojiyi, kavramları ve sorunları açıklar.
DateTime, DateTimeOffset, TimeSpan ve TimeZoneInfo arasında seçim
Tarih ve saat verileriyle çalışırken DateTime, DateTimeOffsetve TimeZoneInfo türlerinin ne zaman kullanılacağını açıklar.
Yerel sistem tanımlanan saat dilimlerini bulma
Yerel sistemde bulunan saat dilimlerinin nasıl numaralandırıldığı açıklanır.
Nasıl yapılır: Bilgisayarda bulunan saat dilimlerini listeleme
Bir bilgisayarın kayıt defterinde tanımlanan saat dilimlerini numaralandıran ve kullanıcıların listeden önceden tanımlanmış bir saat dilimi seçmesine olanak sağlayan örnekler sağlar.
Nasıl yapılır: Önceden tanımlanmış UTC ve yerel saat dilimi nesnelerine erişme
Eşgüdümlü Evrensel Saat'e ve yerel saat dilimine erişmeyi açıklar.
Nasıl yapılır: TimeZoneInfo nesnesinin örneğini oluşturma
Yerel sistem kayıt defterinden bir TimeZoneInfo nesnesinin nasıl oluşturulacağı açıklanır.
DateTimeOffset nesnesinin örneğini oluşturma
bir DateTimeOffset nesnesinin nasıl örneklenebileceğini ve bir DateTime değerinin DateTimeOffset bir değere dönüştürülebileceği yöntemleri açıklar.
Nasıl yapılır: Ayarlama kuralları olmadan saat dilimleri oluşturma
Gün ışığından yararlanma saatine geçişi desteklemeyen özel bir saat diliminin nasıl oluşturulacağını açıklar.
Nasıl yapılır: Ayarlama kuralları ile saat dilimleri oluşturmak
Gün ışığından yararlanma saatine bir veya daha fazla geçişi destekleyen özel bir saat diliminin nasıl oluşturulacağını açıklar.
Saat dilimlerini kaydetme ve geri yükleme
Saat dilimi verilerini seri hale getirme ve seri durumdan çıkarma için TimeZoneInfo desteği açıklar ve bu özelliklerin kullanılabilmesi için bazı senaryoları gösterir.
Nasıl yapılır: Katıştırılmış bir kaynağa saat dilimlerini kaydetme
Özel bir saat dilimi oluşturma ve bilgilerini bir kaynak dosyasına kaydetmeyi açıklar.
Nasıl yapılır: Katıştırılmış bir kaynaktan saat dilimlerini geri yükleme
Gömülü bir kaynak dosyasına kaydedilmiş özel saat dilimlerinin nasıl örneklendiğini açıklar.
Tarih ve saatlerle aritmetik işlemler gerçekleştirme
DateTime ve DateTimeOffset değerleri ekleme, çıkarma ve karşılaştırma ile ilgili sorunları açıklar.
Nasıl yapılır: Tarih ve saat aritmetiğinde saat dilimlerini kullanma
Bir saat diliminin ayarlama kurallarını yansıtan tarih ve saat aritmetiğinin nasıl gerçekleştirildiğini açıklar.
DateTime ile DateTimeOffset arasında dönüştürme
DateTime ve DateTimeOffset değerleri arasında dönüştürmeyi açıklar.
Saat dilimleri arasındaki zamanları dönüştürme
Zamanların bir saat diliminden diğerine nasıl dönüştürüldüğünü açıklar.
Belirsiz Zamanları Çözme Yöntemleri
Belirsiz bir saati saat diliminin standart saatiyle eşleyerek nasıl çözümleyeceğinizi açıklar.
Nasıl yapılır: Kullanıcıların belirsiz zamanları çözmesine izin verme
Bir kullanıcının belirsiz bir yerel saat ile Eşgüdümlü Evrensel Saat arasındaki eşlemeyi belirlemesine nasıl izin verileceğini açıklar.
.NET geri bildirimi
.NET, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Eğitim
Modül
C# kodunuzda doğru veri türünü seçme - Training
C# dilinde kullanılan çeşitli temel türlerden kodunuz için doğru veri türünü seçin.