9

我正在使用 C#.net - .Net fx 是 2.0,它不支持在不同时区之间进行转换。我已经编写了一个基于 UTC 的调度程序,但它在伦敦的 DTS 期间给出了 1 小时的错误。我需要一些解决方案,以便我可以通过正确的 DST 调整在相对于 UTC 的任何时区获得正确的时间。

4

1 回答 1

10

绝对不可能更改为 .NET 3.5 吗?它会让你的生活变得更加轻松。否则,你会被简单的 TimeZone 和 DaylightSavings 类困住,并且不得不使用 P/Invoke 获取已知的时区。

William Stacey 有一篇博客文章,其中包含一些代码来执行此操作- 但我还没有尝试过,所以不能保证它的准确性。(根据我的经验,尽管他通常非常好 :) 如果那个代码对您没有帮助,那么毫无疑问会有类似的代码。

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

于 2008-10-11T06:09:45.897 回答