.NET 4.0中从Utc到Local的DateTime转换

adi*_*rus 5 c#

我有一个功能,其中包括从Utc到Local的转换,反之亦然.问题是,当我在装有Win 7的PC上运行它时,它运行正常,但是当我在装有Vista的PC上运行它时,转换会出错.

例如:我当前的时区是+2 UTC

MyCurrentTime设置为27.09.2012,19:00,DateTimeKind未指定.

DateTime utcTime = DateTime.SpecifyKind(MyCurrentTime,DateTimeKind.Utc);  
DateTime localTime = new DateTime();                             
localTime = utcTime.Date.ToLocalTime();
Run Code Online (Sandbox Code Playgroud)

Win 7的输出是27.09.2012,17:00

Vista上的输出是27.09.2012,04:00

任何想法为什么会这样?

谢谢.

adi*_*rus 2

该解决方案是/sf/users/39910531/建议的解决方案。

Win 7 和 Vista 机器都“同意”正确的时间。

localTime= TimeZone.CurrentTimeZone.ToLocalTime(utcTime);
Run Code Online (Sandbox Code Playgroud)

多谢!