Метод TimeZoneInfo.FindSystemTimeZoneById
Console.WriteLine(TimeZoneInfo.FindSystemTimeZoneById("Europe/Moscow").BaseUtcOffset); // 03:00:00
Console.WriteLine(TimeZoneInfo.FindSystemTimeZoneById("Mexico/BajaNorte").BaseUtcOffset); // -08:00:00
Также если вы запускаете это в докер контейнере, нужно дополнительно проверить что ICU библиотека установлена Remarks:
On Windows systems, FindSystemTimeZoneById tries to match id to the subkey names of the HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones branch of the registry. On Linux and macOS, it uses time zone information available in the ICU Library.
В дефолтном Debian-based образе она должна уже быть установлена.