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.
TimeZoneInfo sınıfı, kodunuzun önceden tanımlanmış saat dilimi nesnelerine erişim sağlaması için iki özellik olan Utc ve Local sağlar. Bu konuda, bu özellikler tarafından döndürülen nesnelere TimeZoneInfo nasıl erişılacağı açıklanır.
Eşgüdümlü Evrensel Saat (UTC) TimeZoneInfo nesnesine erişmek için
staticEşgüdümlü Evrensel Saat'e erişmek için (SharedVisual Basic'te) TimeZoneInfo.Utc özelliğini kullanın.Özellikten döndürülen nesneyi bir nesne değişkenine atamak yerine, Eşgüdümlü Evrensel Saat'e TimeZoneInfo.Utc özelliği ile erişmeye devam edin.
Yerel saat dilimine erişmek için
Yerel sistem saat dilimine
staticerişmek için (SharedVisual Basic'te) TimeZoneInfo.Local özelliğini kullanın.TimeZoneInfo özelliği tarafından döndürülen nesneyi bir nesne değişkenine atamak yerine, TimeZoneInfo.Local özelliği aracılığıyla yerel saat dilimine erişmeye devam edin.
Örnek
Aşağıdaki kod, ABD ve Kanada Doğu Standart Saati diliminden bir saati dönüştürmek ve konsola saat dilimi adını görüntülemek için TimeZoneInfo.Local ve TimeZoneInfo.Utc özelliklerini kullanır.
// Create Eastern Standard Time value and TimeZoneInfo object
DateTime estTime = new DateTime(2007, 1, 1, 00, 00, 00);
string timeZoneName = "Eastern Standard Time";
try
{
TimeZoneInfo est = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName);
// Convert EST to local time
DateTime localTime = TimeZoneInfo.ConvertTime(estTime, est, TimeZoneInfo.Local);
Console.WriteLine("At {0} {1}, the local time is {2} {3}.",
estTime,
est,
localTime,
TimeZoneInfo.Local.IsDaylightSavingTime(localTime) ?
TimeZoneInfo.Local.DaylightName :
TimeZoneInfo.Local.StandardName);
// Convert EST to UTC
DateTime utcTime = TimeZoneInfo.ConvertTime(estTime, est, TimeZoneInfo.Utc);
Console.WriteLine("At {0} {1}, the time is {2} {3}.",
estTime,
est,
utcTime,
TimeZoneInfo.Utc.StandardName);
}
catch (TimeZoneNotFoundException)
{
Console.WriteLine("The {timeZoneName} zone cannot be found in the registry.");
}
catch (InvalidTimeZoneException)
{
Console.WriteLine("The registry contains invalid data for the {timeZoneName} zone.");
}
// The example produces the following output to the console:
// At 1/1/2007 12:00:00 AM (UTC-05:00) Eastern Time (US & Canada), the local time is 1/1/2007 12:00:00 AM Eastern Standard Time.
// At 1/1/2007 12:00:00 AM (UTC-05:00) Eastern Time (US & Canada), the time is 1/1/2007 5:00:00 AM UTC.
' Create Eastern Standard Time value and TimeZoneInfo object
Dim estTime As Date = #01/01/2007 00:00:00#
Dim timeZoneName As String = "Eastern Standard Time"
Try
Dim est As TimeZoneInfo = TimeZoneInfo.FindSystemTimeZoneById(timeZoneName)
' Convert EST to local time
Dim localTime As Date = TimeZoneInfo.ConvertTime(estTime, est, TimeZoneInfo.Local)
Console.WriteLine("At {0} {1}, the local time is {2} {3}.", _
estTime, _
est, _
localTime, _
IIf(TimeZoneInfo.Local.IsDaylightSavingTime(localTime), _
TimeZoneInfo.Local.DaylightName, _
TimeZoneInfo.Local.StandardName))
' Convert EST to UTC
Dim utcTime As Date = TimeZoneInfo.ConvertTime(estTime, est, TimeZoneInfo.Utc)
Console.WriteLine("At {0} {1}, the time is {2} {3}.", _
estTime, _
est, _
utcTime, _
TimeZoneInfo.Utc.StandardName)
Catch e As TimeZoneNotFoundException
Console.WriteLine("The {0} zone cannot be found in the registry.", _
timeZoneName)
Catch e As InvalidTimeZoneException
Console.WriteLine("The registry contains invalid data for the {0} zone.", _
timeZoneName)
End Try
Yerel saat dilimini bir TimeZoneInfo nesne değişkenine atamak yerine, her zaman TimeZoneInfo.Local özelliğiyle yerel saat dilimine erişmeniz gerekir. Her zaman TimeZoneInfo.Utc özelliği aracılığıyla Eşgüdümlü Evrensel Saat'e erişmeniz gerekir; benzer şekilde, UTC bölgesini bir TimeZoneInfo nesne değişkenine atamamalısınız. Bu, nesne değişkeninin TimeZoneInfo yöntemine yapılan bir çağrı tarafından geçersiz kılınmasını TimeZoneInfo.ClearCachedData engeller.