我正在使用Quartz.net调度框架。
当我添加规则时,它使用TimeZoneInfo.Local
来获取本地时区。
当我想因某种原因删除规则时,它会按ID搜索系统时区的时区,使用:
TimeZoneInfo.FindSystemTimeZoneById
通常这样可以正常工作,但我有一个客户端使用Windows Server 2008R2, 配置为耶路撒冷标准时间。
所以在这种情况下,TimeZoneInfo.Local返回:“耶路撒冷标准时间” 但这不是注册表中的关键,它应该是:“以色列标准时间” 这会导致整个操作失败。 那是怎么回事?这对我没有意义......
答案 0 :(得分:1)
原因是因为某些东西正在使用TimeZoneInfo.StandardName而不是TimeZoneInfo.ID。对于所有时区,这些值是相同的,但3个时区除外,“耶路撒冷标准时间”是其中之一。
有关完整说明,请参阅以下链接: Why are some time zones returned by GetSystemTimeZones not found by FindSystemTimeZoneById?