ApplicationData.LocalSettings中的DateTime

Car*_*oza 5 c# uwp

从这篇博客文章来看,似乎我应该能够存储DateTime一个ApplicationData.LocalSettings值作为一个值,但是我在这行中得到了例外.

ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTime.UtcNow;
Run Code Online (Sandbox Code Playgroud)

https://blogs.windows.com/buildingapps/2016/05/10/getting-started-storing-app-data-locally/#bgpwEqDbEt0GClHB.97

例外:

不支持此类型的数据.

尝试序列化要写入应用程序数据存储的值时出错

我错过了什么?

我正在转换DateTime为字符串以使其工作.

Gra*_*eng 8

我认为这是该博客的链接重定向问题,导致您对支持的数据类型的误解DateTime.您可以参考官方文档:应用程序的数据类型,在DateTime这个文件中会链接你的DateTime结构:

JavaScript:此类型显示为Date对象.

.NET:使用.NET编程时,此类型是隐藏的,开发人员应使用System.DateTimeOffset结构.

C++:类似于FILETIME,但有重要的区别.

这意味着,此处支持的日期类型是System.DateTimeOffset Structure,而不是System.DateTime Structure.所以,您可以像这样修改代码:

ApplicationData.Current.LocalSettings.Values["LastTokenRefresh"] = DateTimeOffset.UtcNow;  
Run Code Online (Sandbox Code Playgroud)

或者您可以继续使用您的ToString()方法来保存它,但是当您检索此字符串类型值时,您可能需要重新构建字符串以在代码中使用它.