如何在C#中将UTC时间转换为任何其他时区的时间

9

我正在使用C#.net进行工作,.Net fx版本为2.0,不支持在不同的时区之间进行转换。我已经基于UTC编写了一个调度程序,但在伦敦的DTS期间会出现1小时的错误。我需要一些解决方案,以便可以获取相对于UTC的任何时区的正确时间,并进行正确的夏令时调整。

1个回答

10

改到.NET 3.5是完全不可能的吗?这会让你的生活轻松得多。否则,你只能使用普通的TimeZone和DaylightSavings类,并且必须使用P/Invoke获取已知时区。

William Stacey在他的博客文章中提供了一些代码 - 但我没有尝试过,无法保证其准确性(在我看来,他通常做得相当好:)。如果那个代码对你没有帮助,肯定还有类似的代码。

我相信他正在使用的API没有访问历史数据的权限。换句话说,它将假设DST总是在10月的第一个星期日开始(或任何规则),而不知道规则随时间而改变。.NET 3.5中的TimeZoneInfo支持操作系统具有历史数据的情况。


同意。我看到过旧的代码使用P/Invoke,但是3.5中的TimeZoneInfo使其全部过时了。 - Robert Paulson
嗨Jon,这篇博客文章不再可用了,问一个愚蠢的问题,你知道我可以在哪里查找或指向我可能会帮助我找到这些信息的地方吗? - 1800 INFORMATION

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接