You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何忽略时间比较不同格式日期?C#日期匹配技术问询

问题描述

用户在进行日期搜索时遇到问题:JSON返回的日期包含具体时间,而datetimepicker返回的是当天0点的日期时间,直接比较DateTime对象无法判定为同一天(比如2022-11-26T00:00:00和26.11.2022 12:42:09),需要仅比较日期部分来判定相等。现有C#代码如下:

private DateTime dateSelectedByUser = DateTime.Today;
public async Task DateOnChange(ChangeEventArgs args)
{
    var value = args.Value.ToString();
    dateSelectedByUser = value == string.Empty ? DateTime.Today : DateTime.Parse(value);
    result = items.Where(item=> item.date == dateSelectedByUser ).ToArray();
}
修改方案

利用DateTime类型的Date属性即可解决问题,该属性会返回仅保留日期部分、时间为00:00:00的DateTime对象。修改筛选条件,分别取两个日期的Date属性进行比较:

修改后的代码:

private DateTime dateSelectedByUser = DateTime.Today;
public async Task DateOnChange(ChangeEventArgs args)
{
    var value = args.Value.ToString();
    dateSelectedByUser = value == string.Empty ? DateTime.Today : DateTime.Parse(value);
    // 仅比较日期部分
    result = items.Where(item => item.date.Date == dateSelectedByUser.Date).ToArray();
}

补充说明

  • 如果item.date是可空类型(DateTime?),需要先做空值判断避免空引用异常:
    result = items.Where(item => item.date.HasValue && item.date.Value.Date == dateSelectedByUser.Date).ToArray();
    
  • 若涉及跨时区场景,建议先将所有日期统一转换为同一时区(比如UTC)后再取Date属性比较,避免时区差异导致的日期判定错误。

内容的提问来源于stack exchange,提问作者Sarahrb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 20:20:34