Obtendo data ou hora apenas de um objeto DateTime

Respostas:

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
Marc Gravell
fonte
1
Não achei que fosse tão óbvio! :)
gideon
value.Date + ""retorna o date 12:00:00 AM. Use value.Date.ToShortDateString()para evitar isso.
hesed em
41

Você também pode usar DateTime.Now.ToString("yyyy-MM-dd")para a data e DateTime.Now.ToString("hh:mm:ss")para a hora.

Joshua Smith
fonte
1
Boa decisão. É o que ganho por responder às pressas. Marc Gravell acertou em cheio.
Joshua Smith
5
Eu diria que você está procurando uma string com freqüência suficiente para que esta resposta tenha valor.
GWLlosa
23

Você pode usar Instance.ToShortDateString () para a data
e Instance.ToShortTimeString () para obter a data e hora da mesma instância.

Shail Nautiyal
fonte
2
var currentDateTime = dateTime.Now();
var date=currentDateTime.Date;
Muhammad Kashif
fonte
4
você também pode usar yourDateObj.ToShortDateString();
Muhammad Kashif
-2

Às vezes você deseja ter seu GridView tão simples quanto:

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

Você não deseja especificar nenhum BoundField, apenas deseja vincular sua grade ao DataReader. O código a seguir me ajudou a formatar DateTime nesta situação.

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

Os resultados mostrados aqui. Formatação DateTime

Alexander Chernosvitov
fonte
4
você tem algumas habilidades doentias irmão
Ruchan