gpt4 book ai didi

c# DateTime.Equals() 无法正常工作

转载 作者:行者123 更新时间:2023-11-30 13:53:57 24 4
gpt4 key购买 nike

我正在尝试比较两个具有相同值的 DateTime 变量。

但是当我使用 Equals 方法时,它返回 false,表示“不等于”。

我的代码是:

DateTime date = DateTime.Parse("2/27/2010 1:06:49 PM");
foreach (KeyValuePair<DateTime, List<string>> k in Sample)
{
if (date.Equals(k.Key))
{
Console.WriteLine("Yes");
}
else {
Console.WriteLine("No");
}
}

字典样本包含以下键:

  • 2018 年 5 月 8 日上午 11:18:00
  • 2018 年 5 月 8 日上午 11:17:46
  • 2/27/2010 下午 1:06:49
  • 2018 年 5 月 8 日上午 11:18:08

第三个键值与比较值相同。

对于所有的 key ,我都没有输出。

谁能解释为什么会这样?

最佳答案

正如我所说,DateTime 不仅包含秒,还包含毫秒和滴答。也许他们并不平等。但是您可以使用以下扩展方法来比较秒数:

public static class DateTimeExtensions
{
public static bool EqualsUpToSeconds(this DateTime dt1, DateTime dt2)
{
return dt1.Year == dt2.Year && dt1.Month == dt2.Month && dt1.Day == dt2.Day &&
dt1.Hour == dt2.Hour && dt1.Minute == dt2.Minute && dt1.Second == dt2.Second;
}
}

示例:

DateTime date1 = DateTime.Parse("2/27/2010 1:06:49 PM", CultureInfo.InvariantCulture);
DateTime date2 = date1.AddMilliseconds(100);
bool equals = date1.EqualsUpToSeconds(date2); // true

关于c# DateTime.Equals() 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50250959/

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