Существует действительно разница между идентификаторами часовых поясов в двух системах. Я использовал следующий код, чтобы пройтись по часовым поясам в каждой системе и отметить различия для часовых поясов, которые меня интересовали:
foreach (TimeZoneInfo tz in TimeZoneInfo.GetSystemTimeZones()){
Console.WriteLine("{0}, {1}, {2}, {3}", tz.Id,
tz.DisplayName, tz.StandardName, tz.DaylightName);
}
Затем я использовал метод CreateCustomTimeZone для создания экземпляра, который имитировал настройки Windows:
TimeZoneInfo newtz = TimeZoneInfo.CreateCustomTimeZone("Central Standard Time",
tzi.BaseUtcOffset, "(GMT-06:00) Central Time (US & Canada)",
"Central Standard Time");
и я использовал этот экземпляр в сервисном вызове. Я предполагаю, что мне нужно было только правильно идентифицировать идентификатор (я также установил смещение, длинное имя и т. Д.).