我正在使用 Quartz.net 调度框架。当我添加规则时,它使用TimeZoneInfo.Local
来获取本地时区。
当我想出于某种原因删除规则时,它会按 id 搜索系统时区中的时区,使用:
TimeZoneInfo.FindSystemTimeZoneById
通常这工作正常,但我有一个带有 Windows 服务器 2008R2 的客户端,配置为耶路撒冷标准时间。
所以在这种情况下,TimeZoneInfo.Local 返回:"耶路撒冷标准时间"但这不是注册表中的键,它应该是:"以色列标准时间"这会导致整个操作失败。这是怎么回事?这对我来说毫无意义...
因为某些东西正在使用TimeZoneInfo.StandardName而不是 TimeZoneInfo.ID。对于所有时区,这些值都是相同的,但 3 个时区除外,"耶路撒冷标准时间"是这 3 个时区之一。
有关完整说明,请参阅以下链接:为什么 GetSystemTimeZones 返回的某些时区未被 FindSystemTimeZoneById 找到?