Отримання дати або часу лише з об’єкта DateTime


Відповіді:


135
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()щоб уникнути цього.
hesed

39

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


1
Гарний дзвінок. Ось що я отримую, відповідаючи поспіхом. Марк Гравелл прибив це.
Джошуа Сміт

5
Я б сказав, що ви шукаєте рядок досить часто, щоб ця відповідь мала значення.
GWLlosa

23

Ви можете використовувати 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.