【问题标题】:DateTime just the date?DateTime 只是日期?
【发布时间】:2012-07-25 11:55:17
【问题描述】:

遇到一个问题我只知道如何使用 DateTime 来显示我的结果,如下所示:

    {

            string uri = "http://localhost:8002/Service/HireDate";
            XDocument xDoc = XDocument.Load(uri);
            var staff = xDoc.Descendants("HireDate")
                .Select(n => new
                {
                    StartDate = DateTime.Parse(n.Element("HireFromDate").Value), //this line
                    EndDate = DateTime.Parse(n.Element("HireToDate").Value), //this line
                    TotalDaysHired = n.Element("NumberOfDaysHired").Value,
                })
                .ToList();

            dataGrid9.ItemsSource = staff;

    }

然而,这在我的数据网格中输出如下:

15/07/2012 00:00:00
27/07/2012 00:00:00

有没有办法删除我只想要日期的时间?

【问题讨论】:

标签: c# wpf linq datetime


【解决方案1】:

所以您只想将DateTimeDate 部分显示为String?您可以使用最易读的DateTime.ToShortDateString()

StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToShortDateString()

【讨论】:

  • 或使用StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToString("dd-MM-yyyy");
【解决方案2】:

要获取没有时间的日期作为字符串,可以使用ToShortDateStringcustom formatting options 提供给ToString

var dateString = DateTime.Now.ToString("dd/MM/yyyy");
var shortDate = DateTime.Now.ToShortDateString();

ToShortDateStringToString 都以自定义格式考虑文化(尽管格式仍然是您自己的)。 ToShortDateString 对于当前文化可能更准确,因为它包含给定文化的正确格式。

【讨论】:

    【解决方案3】:
    EndDate = DateTime.Parse(n.Element("HireToDate").Value).ToShortDateString()
    

    【讨论】:

      【解决方案4】:

      您可以使用 DateTime.ParseExact 函数。

      例如:

              XDocument xDoc = XDocument.Load(uri);
      
              var staff = xDoc.Descendants("HireDate")
                  .Select(n => new
                  {
                      StartDate = DateTime.ParseExact(n.Element("HireFromDate").Value, "dd/MM/yyyy", null), //this line
                      EndDate = DateTime.ParseExact(n.Element("HireToDate").Value, "dd/MM/yyyy", null), //this line
                      TotalDaysHired = n.Element("NumberOfDaysHired").Value,
                  })
                  .ToList();
      
              dataGrid9.ItemsSource = staff;
      

      【讨论】:

        【解决方案5】:

        当你输入日期时间时,你可以使用 ToString(string format) 方法来设置正确的格式。

        在这里您可以找到一些格式示例: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

         StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToString("dd/MM/yyyy"),
         EndDate = DateTime.Parse(n.Element("HireToDate").Value).ToString("dd/MM/yyyy")
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2010-11-10
          • 2021-12-05
          • 1970-01-01
          • 1970-01-01
          • 2011-01-25
          • 1970-01-01
          • 2021-09-14
          • 1970-01-01
          相关资源
          最近更新 更多