基本事实:
TimeZoneInfo.ClearCachedDate()
)。TimeZoneInfo.Local.GetUTCOffset("value")
完成的,其中value是要保存的日期/时间值。DateTime.ToLocalTime()
完成的。DateTime.AddHours("stored offset value")
使用先前存储的偏移值完成的。情境:
当应用程序启动时,它具有TimeZoneInfo
的UTC偏移量,对于客户端是正确的,并且一切都正确显示。但是,当时区更改时,DateTime.ToLocalTime()
会相应地显示更改为时区,但TimeZoneInfo.Local.GetUTCOffset
值不会更改为原始时区...实际上,{{1}无论时区变化多少,仍会显示应用程序启动时的原始时区。
唯一的办法是关闭并重新启动Silverlight应用程序,然后正确选择当前时区。
因为它是Silverlight,所以TimeZoneInfo
无法强制从操作系统刷新时区。
问题:
TimeZoneInfo.ClearCachedData()
?TimeZoneInfo
作为时区信息来源吗?谢谢!