加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

.net – 如何在WinRT中清除TimeZoneInfo缓存?

发布时间:2020-12-13 20:36:54 所属栏目:Windows 来源:网络整理
导读:在.NET中,TimeZoneInfo使用的一些值被缓存,例如TimeZoneInfo.Local,DateTime.ToLocalTime等使用的当前时区.在传统的.NET框架应用程序中,可以通过调用TimeZoneInfo.ClearCachedData()来清除此缓存,如 explained in the docs. 但是,在WinStT应用程序(如Windows
在.NET中,TimeZoneInfo使用的一些值被缓存,例如TimeZoneInfo.Local,DateTime.ToLocalTime等使用的当前时区.在传统的.NET框架应用程序中,可以通过调用TimeZoneInfo.ClearCachedData()来清除此缓存,如 explained in the docs.

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

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

有一种无证的方法来实现这一点,as seen here in the .NET reference source.
TimeZoneInfo.ConvertTime(new DateTime(0),TimeZoneInfo.Utc);

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

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

请注意,当TimeZoneInfo.ClearCachedData可用时,应该使用TimeZoneInfo.ClearCachedData而不是此方法.它被添加到.NET Standard 2.0和UWP 10.1(see all environments here)中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读