在silverlight中没有检测到时区变化

时间:2014-12-04 02:46:35

标签: c# silverlight date datetime timezone

基本事实:

  • Silverlight 5应用程序(表示不支持TimeZoneInfo.ClearCachedDate())。
  • 应用程序位于跨多个时区的客户端上。
  • 日期存储为UTC。
    • 保存日期/时间值时客户端时区的UTC偏移量与日期/时间值一起存储。这是使用TimeZoneInfo.Local.GetUTCOffset("value")完成的,其中value是要保存的日期/时间值。
    • 使用本地客户的时区信息显示某些日期。这是使用DateTime.ToLocalTime()完成的。
    • 必须使用UTC偏移显示某些日期,以显示保存客户端POV保存时的日期/时间("静态日期")。这是使用DateTime.AddHours("stored offset value")使用先前存储的偏移值完成的。

情境:

当应用程序启动时,它具有TimeZoneInfo的UTC偏移量,对于客户端是正确的,并且一切都正确显示。但是,当时区更改时,DateTime.ToLocalTime()会相应地显示更改为时区,但TimeZoneInfo.Local.GetUTCOffset值不会更改为原始时区...实际上,{{1}无论时区变化多少,仍会显示应用程序启动时的原始时区。

唯一的办法是关闭并重新启动Silverlight应用程序,然后正确选择当前时区。

因为它是Silverlight,所以TimeZoneInfo无法强制从操作系统刷新时区。

问题:

  • 还有哪些其他选项可以在不重启应用程序的情况下刷新TimeZoneInfo.ClearCachedData()
  • 如果客户端跨时区移动时,如果时区信息不准确包含时区信息,我应该/可以避免TimeZoneInfo作为时区信息来源吗?
  • 其他人遇到过此问题,你是如何解决/解决它的?

谢谢!

0 个答案:

没有答案