【问题标题】:get date without time in c#在c#中获取没有时间的日期
【发布时间】:2017-09-05 07:46:48
【问题描述】:

当我想要获取包含返回 0 行的日期的行时,我的表“AbsenteeismDate”(类型=日期)上有一个列。

这是我的 C# 代码:

DateTime ClassDate = DateTime.Parse(lblDate.Content.ToString());
var Abs = dbs.GETAbsenteeisms.Where(a => a.AbsenteeismDate == ClassDate ).ToList();

我检查了它有一个问题: 数据库上的“AbsenteeismDate”和“ClassDate”不相等。

例如。

AbsenteeismDate=1396-05-31

ClassDate=1396-05-31 12:00:00 AM

我如何使用 DateTime 类型获取没有时间的日期,因为 AbsenteeismDate 的类型是我数据库中的日期。

对不起,我的英语说得不太好。

【问题讨论】:

标签: c# date time get


【解决方案1】:

DateTime 始终具有日期和时间部分,但如果您想获得该日期的 DateTime 并将时间值设置为午夜 12:00:00 (00:00:00),请使用 @987654321 @:

var Abs = dbs.GETAbsenteeisms
   .Where(a => a.AbsenteeismDate == ClassDate.Date)
   .ToList();

【讨论】:

    【解决方案2】:

    您只定义日期时间,但没有时间:

    string date = System.DateTime.Now.ToString("yyyy-MM-dd");
    

    【讨论】:

    • 这是 IMO 的最佳方式,它允许输出字符串的最大灵活性。
    【解决方案3】:

    使用日期属性:

    DateTime ClassDate = DateTime.Parse(lblDate.Content.ToString());
    var date = ClassDate.Date;
    

    否则你将不得不按如下方式转换成字符串

    var date=ClassDate.ToString("yyyy-MM-dd");
    

    【讨论】:

      【解决方案4】:

      这对我有用:

      string a = DateTime.Now.ToShortDateString();
      

      ToShortDateString() 将当前 System.DateTime 对象的值转换为等效的短日期字符串表示形式。这意味着控制台输出将是例如01.01.2017

      【讨论】:

        【解决方案5】:

        您可以尝试这样设置日期格式:

        DateTime ClassDate = DateTime.Parse(lblDate.Content.ToString(("yyyy-MM-dd"));
        var Abs = dbs.GETAbsenteeisms.Where(a => a.AbsenteeismDate == ClassDate ).ToList();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-06-12
          • 2012-03-03
          • 2020-02-23
          • 2011-06-30
          • 1970-01-01
          • 2017-07-28
          • 1970-01-01
          相关资源
          最近更新 更多