Мы используем Graph Api для получения и установки событий календаря.
Мы вызываем GetSchedule и используем WorkingHours.TimeZone.Name, чтобы попытаться получить TimeZoneInfo.
TimeZoneInfo.FindSystemTimeZoneById(workingHours.TimeZone.Name);
В течение большей части времени В зонах, которые настроены на внешний вид (например, по восточному поясному времени), имя часового пояса правильное, и все, кажется, работает хорошо.
Однако, если Outlook настроен на что-то вроде часового пояса Аризоны (что является опцией при установке времени зона в перспективе) выдает ошибку:
The time zone ID 'Customized Time Zone' was not found on the local computer.
Поэтому мы попытались обойти это путем создания собственного часового пояса с использованием смещения / смещения
try
{
return TimeZoneInfo.FindSystemTimeZoneById(workingHours.TimeZone.Name);
}
catch (Exception ex)
{
var customTimeZone = workingHours.TimeZone as CustomTimeZone;
return TimeZoneInfo.CreateCustomTimeZone("Customized Time Zone", TimeSpan.FromMinutes(Convert.ToDouble(customTimeZone.Bias)), "Customized Time Zone", "Customized Time Zone");
}
Это работает при создании новый информационный объект о часовом поясе для вызова, однако, когда мы go планируем событие с использованием этого часового пояса, он выдает ошибку, говорящую:
Code: TimeZoneNotSupportedException
Message: A valid TimeZone value must be specified. The following TimeZone value is not supported: 'Customized Time Zone'.
Почему график для Аризоны дает пользовательский часовой пояс? Как мы планируем события с часовым поясом?