DateTime просто дату?

Возникла проблема, я знаю только, как использовать 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

Есть ли способ удалить время, когда мне просто нужна дата?


person Kirsty White    schedule 25.07.2012    source источник
comment
Это больше похоже на проблему пользовательского интерфейса, то есть на работу сетки данных. Итак: что это за сетка данных? Winforms? веб-формы? wpf? сл? xna? ср? mvc?   -  person Marc Gravell    schedule 25.07.2012


Ответы (4)


Значит, вы хотите показать только Date часть DateTime как String? Вы можете использовать наиболее читаемый DateTime.ToShortDateString():

StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToShortDateString()
person Tim Schmelter    schedule 25.07.2012
comment
или используйте StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToString("dd-MM-yyyy"); - person Harry89pl; 25.07.2012

Чтобы получить дату без времени в виде строки, вы можете использовать ToShortDateString или параметры настраиваемого форматирования предоставлено ToString:

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

Культура рассматривается как в ToShortDateString, так и в ToString с настраиваемым форматом (хотя формат все еще ваш собственный). ToShortDateString может быть более точным с текущей культурой, поскольку она содержит правильный формат для данной культуры.

person Adam Houldsworth    schedule 25.07.2012

Вы можете использовать функцию DateTime.ParseExact.

e.g :

        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;
person Lajja Thaker    schedule 25.07.2012

когда вы указываете дату и время, вы можете использовать метод ToString (строковый формат), чтобы установить правильный формат.

здесь вы можете найти несколько smaple форматов: 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")
person Tamir    schedule 25.07.2012