Obtener fecha u hora solo de un objeto DateTime

Respuestas:

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
Marc Gravell
fuente
1
¡No creía que fuera tan obvio! :)
gideon
value.Date + ""devuelve el date 12:00:00 AM. Úselo value.Date.ToShortDateString()para evitar esto.
Hesed el
39

También puede utilizar DateTime.Now.ToString("yyyy-MM-dd")para la fecha y DateTime.Now.ToString("hh:mm:ss")la hora.

Joshua Smith
fuente
1
Buena llamada. Eso es lo que obtengo por responder a toda prisa. Marc Gravell lo clavó.
Joshua Smith
5
Sin embargo, diría que está buscando una cadena con la suficiente frecuencia como para que esta respuesta tenga valor.
GWLlosa
22

Puede usar Instance.ToShortDateString () para la fecha,
e Instance.ToShortTimeString () para obtener la fecha y la hora de la misma instancia.

Shail Nautiyal
fuente
2
var currentDateTime = dateTime.Now();
var date=currentDateTime.Date;
Muhammad Kashif
fuente
4
también puede utilizar yourDateObj.ToShortDateString();
Muhammad Kashif
-2

A veces desea tener su GridView tan simple como:

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

No desea especificar ningún BoundField, solo desea vincular su cuadrícula a DataReader. El siguiente código me ayudó a formatear DateTime en esta situación.

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");
}

Los resultados que se muestran aquí. Formato de fecha y hora

Alexander Chernosvitov
fuente
4
tienes algunas habilidades enfermas hermano
Ruchan