如果我在 C# 控制台应用程序中执行此代码,它工作正常。
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
...
我注意到的一件奇怪的事情是,当 MSDN 文档明确指出从注册表中检索信息时,异常是在名为“FindSystemTimeZoneByFileName”的方法中引发的。