gpt4 book ai didi

c# - 设置插件无法与 DateTime 属性一起正常工作

转载 作者:IT王子 更新时间:2023-10-29 04:25:03 28 4
gpt4 key购买 nike

我正在使用 settings plugin我让它工作来存储一些 bool 值。现在我想添加管理 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);
}
}

最初我在我的代码中使用了以下内容:

Settings.TimeRemaining = new DateTime().AddMinutes(30);

当我添加一些日志记录时,我得到了这个:

DateTime dt = new DateTime();
Debug.WriteLine(dt.ToString());
dt = dt.AddMinutes(30);
Debug.WriteLine(dt.ToString());
Settings.TimeRemaining = dt;
Debug.WriteLine(Settings.TimeRemaining.ToString());

它打印出:

1/1/0001 12:00:00 AM

1/1/0001 12:30:00 AM

1/1/0001 12:00:00 AM

为什么会出现这种行为?

最佳答案

设置插件converts the DateTime to 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);

关于c# - 设置插件无法与 DateTime 属性一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36980158/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com