Если я выполняю этот код в консольном приложении C#, он отлично работает.TimeZoneInfo.FindSystemTimeZoneById() выдает исключение в приложении Unity
TimeZoneInfo easternZone = TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time");
Console.WriteLine(easternZone.DisplayName);
Однако, когда я использую тот же метод в приложении Unity, генерируется исключение:
System.TimeZoneNotFoundException: Exception of type 'System.TimeZoneNotFoundException' was thrown.
at System.TimeZoneInfo.FindSystemTimeZoneByFileName (System.String id, System.String filepath) [0x00000] in <filename unknown>:0
at System.TimeZoneInfo.FindSystemTimeZoneById (System.String id) [0x00000] in <filename unknown>:0
...
Любопытная вещь, которую я заметил, что исключение в методе с именем «FindSystemTimeZoneByFileName», когда в документации MSDN явно говорится, что информация извлекается из реестра.
Большое спасибо за ваш быстрый ответ и ссылки, которые вы предоставили. Я был очень уверен, что это решит проблему, но, к сожалению, этого не произошло. Фактически, я понял, что даже не могу получить список доступных часовых поясов, используя 'TimeZoneInfo.GetSystemTimeZones()'. Я предполагаю, что проблема не только в Mono, но и что-то еще, связанное с Unity или любой другой библиотекой, которую мы используем в проекте. Я продолжу копать, –
Я потратил еще некоторое время на эту проблему и обнаружил, что на самом деле это ошибка Unity, как сообщается здесь: https://issuetracker.unity3d.com/issues/win-system- dot-timezoneinfo-do-not-return-any-time-зоны –
Спасибо за продолжение. Сообщите нам, исправят ли они это. :) –