我有一个Xamarin iOS应用程序,它依赖于System.TimeZoneInfo.Local值。当我启动应用程序并检查此属性时,它似乎是正确的(它反映了我的iPhone设置中设置的时区)。如果我在应用程序中设置并更改iPhone设置中的时区,然后返回应用程序并查看System.TimeZoneInfo.Local属性,它不会反映设置中的更改 - 它仍会显示旧的时区。
完全杀死应用并重新启动它会导致TimeZoneInfo.Local刷新到设置中设置的时区。
为什么在重新启动应用之前,此值不会更改?有办法解决这个问题吗?
答案 0 :(得分:0)
事实证明,TimeZoneInfo会缓存时区信息。可以使用
清除此缓存System.TimeZoneInfo.ClearCache();
请注意,此调用在PCL中不可用,因此必须使用特定于平台的代码编写。