TimeZoneCode para TimeZoneInfo

Em nosso projeto de CRM de dinâmica de MS, criamos um lote de upload de usuário em massa.
O lote lê de um arquivo do Excel e faz um upload em massa dos usuários.
Uma das coisas que esse lote precisa definir é o timezonecode.

No arquivo excel, o fuso horário será escrito como, por exemplo, "UTC + 1"
O código usado pelo CRM parece ser o timezonecode que o SQL-server está usando como pode ser encontradoAqui.

Qual é a maneira mais limpa de mapear isso?
Minhas ideias até agora:

Codificar um armazenamento de conversãoBusque os códigos do CRM de alguma formaBusque os códigos do SQL de alguma forma

Atualmente, implementamos nossa própria classe de conversão com valores codificados.
Existe uma maneira melhor? Podemos alavancar a classe .net TimezoneInfo de alguma forma?

Atualizar
Para obter todos os fusos horários do CRM, fizemos o seguinte:

var colSet = new ColumnSet(true);
var query = new QueryExpression(TimeZoneDefinition.EntityLogicalName) { ColumnSet = colSet};
var timeZoneDefs = service.RetrieveMultiple(query).Entities.Select(tz => tz.ToEntity<TimeZoneDefinition>());

Mas parece que as únicas propriedades preenchidas são Id, Code, StandardName e UserInterfaceName. Parece que apenas o nome da interface do usuário contém o deslocamento que estamos procurando.

Existe alguma maneira de garantir que a propriedade Bias seja carregada?

questionAnswers(2)

yourAnswerToTheQuestion