在iPhone上更改时区时,System.TimeZoneInfo.Local不会更改

时间:2015-11-05 19:13:17

标签: ios datetime xamarin

我有一个Xamarin iOS应用程序,它依赖于System.TimeZoneInfo.Local值。当我启动应用程序并检查此属性时,它似乎是正确的(它反映了我的iPhone设置中设置的时区)。如果我在应用程序中设置并更改iPhone设置中的时区,然后返回应用程序并查看System.TimeZoneInfo.Local属性,它不会反映设置中的更改 - 它仍会显示旧的时区。

完全杀死应用并重新启动它会导致TimeZoneInfo.Local刷新到设置中设置的时区。

为什么在重新启动应用之前,此值不会更改?有办法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

事实证明,TimeZoneInfo会缓存时区信息。可以使用

清除此缓存
System.TimeZoneInfo.ClearCache();

请注意,此调用在PCL中不可用,因此必须使用特定于平台的代码编写。