【问题标题】:How to test two dateTimes for being the same date? [duplicate]如何测试两个日期时间是否相同? [复制]
【发布时间】:2012-06-20 23:08:40
【问题描述】:

可能重复:
How to compare Dates in C#

我的这段代码:

public static string getLogFileNameForDate(DateTime dt)
{
    if (dt.Equals(DateTime.Now))

...即使两个日期相同(日期)也会失败,因为 dt 在启动时被分配了一个值(例如“6/18/2012 15:19:42”),因此日期不完全是相同,即使年、月和日相同(DateTime.Now 的值可能是“6/18/2012 15:30:13”)。

我知道我可以这样测试:

if ((dt.Year.Equals(DateTime.Now.Year) && (dt.Month.Equals(DateTime.Now.Month) && (dt.Day.Equals(DateTime.Now.Day))

...但这似乎有点像 Jethro* 风格

什么是接受/首选的方法(没有双关语)?

  • Clampett,而不是 Tull

【问题讨论】:

  • dt.Date.CompareTo(DateTime.Now.Date) == 0 应该可以解决问题。
  • @dash:看起来你需要神话般的“Seeing Double”徽章来为你不断发现的这些骗子。
  • 我一直在问自己:“这些肯定不是原创问题” :-) 一方面,OP 得到的答案很好,但另一方面,用相同的内容填充网站答案...

标签: c# datetime equality


【解决方案1】:

试试

if (dt.Date == DateTime.Now.Date)

只取日期部分,时间戳为 12:00:00

【讨论】:

  • 我想你也可以dt.date == DateTime.Today
猜你喜欢
  • 2020-11-28
  • 1970-01-01
  • 1970-01-01
  • 2013-11-08
  • 1970-01-01
  • 2012-10-17
  • 2016-02-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多