Получение даты или времени только из объекта DateTime


Ответы:


134
var day = value.Date; // a DateTime that will just be whole days
var time = value.TimeOfDay; // a TimeSpan that is the duration into the day

1
Не думал, что это так очевидно! :)
gideon

value.Date + ""возвращает date 12:00:00 AM. Используйте, value.Date.ToShortDateString()чтобы избежать этого.
Хэсэд

39

Вы также можете использовать DateTime.Now.ToString("yyyy-MM-dd")дату и DateTime.Now.ToString("hh:mm:ss")время.


1
Хороший звонок. Вот что я получаю за поспешный ответ. Марк Гравелл это сделал.
Джошуа Смит

5
Я бы сказал, что вы ищете строку достаточно часто, чтобы этот ответ имел ценность.
GWLlosa

22

Вы можете использовать Instance.ToShortDateString () для даты
и Instance.ToShortTimeString () для времени, чтобы получить дату и время из одного и того же экземпляра.



-2

Иногда вам нужно, чтобы ваш GridView был таким простым, как:

  <asp:GridView ID="grid" runat="server" />

Вы не хотите указывать какой-либо BoundField, вы просто хотите привязать свою сетку к DataReader. Следующий код помог мне отформатировать DateTime в этой ситуации.

protected void Page_Load(object sender, EventArgs e)
{
  grid.RowDataBound += grid_RowDataBound;
  // Your DB access code here...
  // grid.DataSource = cmd.ExecuteReader(CommandBehavior.CloseConnection);
  // grid.DataBind();
}

void grid_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType != DataControlRowType.DataRow)
    return;
  var dt = (e.Row.DataItem as DbDataRecord).GetDateTime(4);
  e.Row.Cells[4].Text = dt.ToString("dd.MM.yyyy");
}

Результаты показаны здесь. Форматирование даты и времени


4
у тебя есть кое-какие нездоровые навыки, братан
Ручан
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.