【问题标题】:How to convert UTC time to Time in any other time zone in C#如何在 C# 中将 UTC 时间转换为任何其他时区的时间
【发布时间】:2010-09-16 15:53:56
【问题描述】:

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

【问题讨论】:

    标签: c# time timezone


    【解决方案1】:

    绝对不可能改用 .NET 3.5 吗?它会让你的生活变得更加轻松。否则,您将不得不使用普通的 TimeZone 和 DaylightSavings 类,并且必须使用 P/Invoke 获取已知的时区。

    William Stacey 有一个 blog post with some code to do this - 但我还没有尝试过,所以不能保证它的准确性。 (但根据我的经验,他通常相当出色 :) 如果对您没有帮助的话,毫无疑问会有类似的代码。

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

    【讨论】:

    • 同意。我见过做 P/Invoke 的旧代码,而 3.5 中的 TimeZoneInfo 使它完全过时了。
    • 嗨,乔恩,博客文章不再可用,愚蠢的问题,你知道我可能会在哪里寻找或指向可以帮助我找到该信息的地方吗?
    猜你喜欢
    • 2014-05-11
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2023-03-10
    • 2019-05-21
    • 1970-01-01
    • 2014-08-25
    相关资源
    最近更新 更多