【问题标题】:Getting exception when we got out of system time zones当我们离开系统时区时出现异常
【发布时间】:2016-11-17 09:57:34
【问题描述】:

当我在系统时区之外转换当前时间时出现异常。例如,在我的 PC 中,所有时区都是 UTC 时区。但是,当我获得 GMT 时区(格林威治标准时间)时,无法获得区域当前时间。目前我正在使用下面的代码。

DateTime time = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(DateTime.Now, TimeZoneInfo.Local.Id, "Greenwich Mean Time");

上面的代码抛出一个错误“在本地计算机上找不到时区 ID '格林威治标准时间'” 如何解决这个问题? 请帮帮我。

提前致谢

【问题讨论】:

  • 可以尝试 TimeZoneInfo.GetSystemTimeZones 来查看您的系统上有哪些时区,认为 GMT 可能是“GMT 标准时间”,但该方法将获取所有已安装的列表
  • 没有内置方法可以进行 1:1 转换。您将不得不求助于使用 Noda Time 等 3rd 方库
  • 感谢 RoguePlanetoid 的回复,我尝试了上述方法,但我只得到 UTC 时区。未获取与 GMT 相关的时区。

标签: c# asp.net c#-4.0


【解决方案1】:

您传递给“ConvertTimeBySystemTimeZoneId”的第三个参数是时区名称(我认为) - 您需要传递时区 ID

您要查找的时区 ID 是“GMT 标准时间”。

【讨论】:

    猜你喜欢
    • 2020-06-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 2011-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多