C# TimeZone.IsInvalidTime未捕获2010年埃及dst导致的无效时间

C# TimeZone.IsInvalidTime未捕获2010年埃及dst导致的无效时间,c#,timezone,dst,C#,Timezone,Dst,这是一个极端情况。 我正在修复将无效的本地时间转换为UTC的问题。在本地时区中,由于夏令时(dst),某些时段无法转换为UTC。如果时区正确,则可以使用IsInvalidTime()来标识此类数据时间值 在埃及,由于斋月,DST在2010年一年中更改了4次。IsInvalidTime()似乎没有检测到第二次这样的转换 编辑 TimeZoneInfo.ConvertTime()是我用来将其转换为UTC的工具,它将这些值转换为UTC。一个错误的转换,但转换都一样 有没有人遇到过这个问题,有没有关于覆

这是一个极端情况。

我正在修复将无效的本地时间转换为UTC的问题。在本地时区中,由于夏令时(dst),某些时段无法转换为UTC。如果时区正确,则可以使用IsInvalidTime()来标识此类数据时间值

在埃及,由于斋月,DST在2010年一年中更改了4次。IsInvalidTime()似乎没有检测到第二次这样的转换

编辑 TimeZoneInfo.ConvertTime()是我用来将其转换为UTC的工具,它将这些值转换为UTC。一个错误的转换,但转换都一样


有没有人遇到过这个问题,有没有关于覆盖这个问题的建议?

众所周知,Windows时区数据库在准确反映时区规则的历史变化方面非常糟糕。改用IANA/Olson时区数据库。有关不同数据库的更多信息,请参阅


对于.Net,最好的解决方案是使用。它完全实现了IANA/Olson数据库。您可以使用
非洲/开罗
时区,它准确地反映了所有的历史变化。

看看这里,不确定您是否需要它,它似乎可以修复日历和outlook,但不能为库提供帮助。这里的问题不仅仅是历史方面的问题,我相信Windows时区表示法不能支持每小时超过2次的转换一年也没有。