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

标签 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();

Win 7 上的输出是 27.09.2012, 17:00

Vista 上的输出是 27.09.2012, 04:00

知道为什么会这样吗?

谢谢。

最佳答案

解决方案是 https://stackoverflow.com/users/570150/v4vendetta 建议的解决方案.

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

localTime= TimeZone.CurrentTimeZone.ToLocalTime(utcTime);

非常感谢!

关于c# - .NET 4.0 中从 Utc 到 Local 的 DateTime 转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12636780/

相关文章:

c# - 查询 documentdb 中的子字段

c# - VS 在 C# 代码中获取返回值?

c# - 在 JSON.NET 中反序列化此对象

c# - 在 C# 中根据 Active Directory 验证密码复杂性

C# 在两个 Web 应用程序之间验证 Web 服务时出现问题

c# - 如果值是枚举值的一部分,则查找值

c# - 有没有办法在 Windows 10 设备上以编程方式启用/禁用(灰色)操作中心中的旋转锁定,而无需重新启动?

c# - ASP.NET MVC3 - "Object reference not set to an instance of an object"错误

c# - IEnumerable 和 Array、IList 和 List 有什么区别?

c# - CosmosDB System.ArgumentNullException : 'Value cannot be null. (Parameter ' authKeyOrResourceToken')'