嗯,这很奇怪,但我创建了简单的UWP项目,并在代码中添加了简单的一行:
IEnumerable<string> TimeZones = TimeZoneInfo.GetSystemTimeZones().Select(_ => _.DisplayName);
当我执行程序时,我得到了预期的结果:
但如果我设置标志&#34;使用.Net Native工具链编译&#34; ,我会得到:
是否有可能通过&#34;使用.Net Native工具链编译&#34; 以某种方式获得预期的行为?
答案 0 :(得分:0)
感谢您报告此问题。
似乎在启用.Net Native工具链时,DisplayName属性将返回与StandardName属性相同的值。我已将此问题记录在我们的系统中。
作为一种解决方法,您可以将UTC偏移值与StandardName组合如下:
var TimeZoneList=TimeZoneInfo.GetSystemTimeZones();
foreach(var i in TimeZoneList)
{
TimeSpan ts = i.GetUtcOffset(DateTime.Now);
if (ts.ToString().Contains("-"))
{
string s = "(UTC" + ts.ToString() + ")" + i.StandardName;
}
else
{
string s = "(UTC+" + ts.ToString() + ")" + i.StandardName;
}
}
感谢。