15 Temmuz 2018 Pazar

TimeZoneInfo Sınıfı

Giriş
Bu sınıf tüm dünyadaki saat dilimlerini temsil eder. .NET 4.0'dan beri mevcut. Bilgisayarın yerel saat dilimine erişmek için TimeZone sınıfı kullanılır.

BaseUTcOffset alanı
Açıklaması şöyle.
TimeZoneInfo.BaseUtcOffset property is the difference between UTC and the time zone's standard time, not the actual time.
Örnek
Şöyle yaparız.
var zone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
var baseOffset = zone.BaseUtcOffset; // UTC-06:00
var actualOffset = zone.GetUtcOffset(DateTime.UtcNow); // UTC-05:00
ConvertTime metodu
İlk parametre olarak yerel zaman, ikinci parametre olarak hedef zaman dilimi verilir. Çağrı yerel zamanı hedef zaman dilimine çevirir.

Örnek ver.

ConvertTimeFromUtc metodu - DateTime + TimeZoneInfo
İlk parametre olarak UTC zaman, ikinci parametre olarak hedef zaman dilimi verilir. Çağrı UTC zamanı hedef zaman dilimine çevirir.

Eğer DateTime nesnesinin Kind alanı UTC değilse şu exception fırlatılır.
at System.TimeZoneInfo.ConvertTime(DateTime dateTime, TimeZoneInfo sourceTimeZone, TimeZoneInfo destinationTimeZone, TimeZoneInfoOptions flags, CachedData cachedData) at System.TimeZoneInfo.ConvertTimeFromUtc(DateTime dateTime, TimeZoneInfo destinationTimeZone)
The conversion could not be completed because the supplied DateTime did not have the Kind property set correctly. For example, when the Kind property is DateTimeKind.Local, the source time zone must be TimeZoneInfo.Local.
Örnek
Şöyle yaparız.
DateTime timeUtc = ...;
TimeZoneInfo cstZone = ...;
DateTime cstTime = TimeZoneInfo.ConvertTimeFromUtc(timeUtc, cstZone);
Örnek
Şöyle yaparız.
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var utcNow = DateTime.UtcNow;
var localTime = TimeZoneInfo.ConvertTimeFromUtc(utcNow, timeZone);
Console.WriteLine(localTime.ToShortDateString());
Örnek
Şöyle yaparız.
TimeZoneInfo.ConvertTimeFromUtc(utcdate, clients_timezoneinfo)
ConvertTimeToUtc metodu
Yerel zamanı UTC zamana çevirir.

FindSystemTimeZoneById metodu
Örnek
Şöyle yaparız.
string zoneId = "AUS Eastern Standard Time";
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
Örnek
Şöyle yaparız.
string zoneId = "Central Standard Time";
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
Örnek
Şöyle yaparız.
string zoneId = "New Zealand Standard Time";
TimeZoneInfo timeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(zoneId);
Örnek
Şöyle yaparız.
TimeZoneInfo timeZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
GetUtcOffset metodu
Belirtilen zaman dilimi ile UTC arasındaki saat farkını verir.
var utcOffset = TimeZoneInfo.Local.GetUtcOffset(DateTime.UtcNow);
IsAmbigousTime metodu
Şöyle yaparız.
var result = timeZoneInfo.IsAmbiguousTime(
   new DateTime(2016, 04, 02, 16, 00, 00, 0, DateTimeKind.Utc)
);
Console.WriteLine(result);  // True
StandartName Alanı
Şöyle yaparız.
Console.WriteLine($"{TimeZoneInfo.Local.StandardName}");

Hiç yorum yok:

Yorum Gönder