ste*_*ana 24 c# xamarin win-universal-app
我正在使用设置插件,我正在努力存储一些布尔值.现在我想添加管理DateTime对象.我在Settings.cs中添加了以下内容:
private const string TimeRemainingKey = "time_remaining";
private static readonly DateTime TimeRemainingDefault = DateTime.Now;
public static DateTime TimeRemaining
{
get
{
return AppSettings.GetValueOrDefault(TimeRemainingKey, TimeRemainingDefault);
}
set
{
AppSettings.AddOrUpdateValue(TimeRemainingKey, value);
}
}
Run Code Online (Sandbox Code Playgroud)
最初我在我的代码中使用了以下内容:
Settings.TimeRemaining = new DateTime().AddMinutes(30);
Run Code Online (Sandbox Code Playgroud)
当我添加一些日志记录时,我有这个:
DateTime dt = new DateTime();
Debug.WriteLine(dt.ToString());
dt = dt.AddMinutes(30);
Debug.WriteLine(dt.ToString());
Settings.TimeRemaining = dt;
Debug.WriteLine(Settings.TimeRemaining.ToString());
Run Code Online (Sandbox Code Playgroud)
打印出来:
1/1/0001 12:00:00 AM
1/1/0001 12:30:00 AM
1/1/0001 12:00:00 AM
为什么会出现这种情况?
Gio*_*rgi 17
设置插件将DateTime转换为UTC,因此当它将1/1/0001 12:30:00 AM转换为UTC时,它会在您的时区中看起来像是1/1/0001 12:00:00 AM.因此,当从设置中读回值时,您将获得1/1/0001 12:00:00 AM.
如果您Kind
为日期设置插件应该正常工作:
Settings.TimeRemaining = DateTime.SpecifyKind(new DateTime().AddMinutes(30), DateTimeKind.Utc);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
838 次 |
最近记录: |