【问题标题】:local time zone is not part of system time zones本地时区不是系统时区的一部分
【发布时间】:2014-02-09 13:26:15
【问题描述】:

我正在使用 Quartz.net 调度框架。 当我添加规则时,它使用TimeZoneInfo.Local 来获取本地时区。

当我出于某种原因要删除规则时,它会按 id 在系统时区中搜索时区,使用:

TimeZoneInfo.FindSystemTimeZoneById 

通常这可以正常工作,但我有一个使用 windows server 2008R2 的客户端, 配置为耶路撒冷标准时间。

所以在这种情况下 TimeZoneInfo.Local 返回:“耶路撒冷标准时间” 但这不是注册表中的键,应该是:“以色列标准时间” 这会导致整个操作失败。 那是怎么回事?这对我来说毫无意义......

【问题讨论】:

  • 我找到了关于这个问题的以下线程。这似乎是由缺少或失败的操作系统补丁引起的。 social.msdn.microsoft.com/Forums/vstudio/en-US/…
  • 伟大的领导,谢谢。你知道什么 SP 解决了这个问题吗?
  • 很遗憾,我没有。
  • 无法下载最新的 SP 和时区更新。必须在插入/更新后编写触发器以更改存储在数据库中的时区 ID。谢谢你,微软:)

标签: c# .net timezone quartz.net


【解决方案1】:

原因是因为某些东西正在使用 TimeZoneInfo.StandardName 而不是 TimeZoneInfo.ID。对于所有时区,这些值都是相同的,但 3 个时区除外,“耶路撒冷标准时间”是这 3 个时区之一。

完整说明请参见以下链接: Why are some time zones returned by GetSystemTimeZones not found by FindSystemTimeZoneById?

【讨论】:

    猜你喜欢
    • 2016-05-05
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2014-10-04
    相关资源
    最近更新 更多