当前位置:  开发笔记 > 开发工具 > 正文

如何在WinRT中清除TimeZoneInfo缓存?

如何解决《如何在WinRT中清除TimeZoneInfo缓存?》经验,为你挑选了1个好方法。

在.NET中使用的一些值TimeZoneInfo被缓存,如当前使用的时区TimeZoneInfo.Local,DateTime.ToLocalTime等等.在传统的.NET架构的应用程序,该缓存可以通过调用被清除TimeZoneInfo.ClearCachedData(),如在文档解释.

但是,在WinRT应用程序(如Windows应用商店应用程序和Windows Universal Apps)中,ClearCachedDataAPI不可用.

如何清除WinRT环境中的时区缓存?



1> Matt Johnson..:

有一种未记录的方法可以实现这一点,如.NET参考源中所示.

TimeZoneInfo.ConvertTime(new DateTime(0), TimeZoneInfo.Utc);

这将清除时区缓存,它可以在WinRT以及传统的.NET Framework(4.6 +),.NET Core和PCL中运行.

根据微软在.NET团队的同事们的说法,这是针对已知问题的非官方解决方法.它不会被删除,但它是一个实现细节,而不是公共API的一部分,因此使用风险自负.

请注意TimeZoneInfo.ClearCachedData,当它可用时,应该使用此方法而不是此方法.它被添加到.NET Standard 2.0和UWP 10.1(请参阅此处的所有环境).

推荐阅读
N个小灰流_701
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有