Tag Archives: timezoneinfo

.NET 6 Yenilikleri – IANA Time zone desteği

.NET 6 ile gelen yeniliklerden biri de Windows time zone desteğine ilave olarak IANA time zone desteğinin geldi.

.NET 6 ile birlikte bütün platform’larda Windows time zone desteğine ek olarak IANA time zone desteği geldi. Bildiğiniz gibi günümüzde IANA time zone en güncel ve en popüler zaman dili bilgisine sahip yapılardan biri. Bu nedenle bu desteğin gelmesi geliştiriciler için gayet faydalı oldu.

Aşağıdaki kod parçasına bir göz atalım;

var ianaZoneId = "Europe/Istanbul";

var zoneInfo = TimeZoneInfo.FindSystemTimeZoneById(ianaZoneId);
Console.WriteLine(zoneInfo.DisplayName);
// (UTC+03:00) Istanbul

TimeZoneInfo.TryConvertIanaIdToWindowsId(ianaZoneId, out var windowsId);
Console.WriteLine(windowsId);
// Turkey Standard Time

TimeZoneInfo.TryConvertWindowsIdToIanaId(windowsId, out ianaZoneId);
Console.WriteLine(ianaZoneId);
// Europe/Istanbul

Console.WriteLine(zoneInfo.HasIanaId); // True

.NET 5 ve öncesinde yukarıdaki FindSystemTimeZoneById metodu TimeZoneNotFoundException fırlatırdı “Europe/Istanbul” için. Ama artık .NET 6 ile birlikte bu destek sağlanmış oldu.

TryConvertIanaIdToWindowsId ve TryConvertWindowsIdToIanaId statik metodları ile de windows time zone id’den iana time zone id’ye çevirme ve tam tersi işlemi yapabiliyoruz.

HasIanaId property’si ile de TimeZoneInfo instance’ının bir IANA id karşılığı olup olmadığını görebiliyoruz.

IANA time zone resmi sitesi: https://www.iana.org/time-zones