Obtenir la date ou l'heure uniquement à partir d'un objet DateTime


Réponses:


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
Je ne pensais pas que c'était si évident! :)
gideon

value.Date + ""renvoie le date 12:00:00 AM. Utilisez value.Date.ToShortDateString()pour éviter cela.
eu lieu

39

Vous pouvez également utiliser DateTime.Now.ToString("yyyy-MM-dd")pour la date et DateTime.Now.ToString("hh:mm:ss")pour l'heure.


1
Bon appel. C'est ce que j'obtiens pour répondre à la hâte. Marc Gravell l'a cloué.
Joshua Smith

5
Je dirais que vous recherchez une chaîne assez souvent pour que cette réponse ait de la valeur, cependant.
GWLlosa

22

Vous pouvez utiliser Instance.ToShortDateString () pour la date
et Instance.ToShortTimeString () pour l'heure pour obtenir la date et l'heure de la même instance.



-2

Parfois, vous voulez avoir votre GridView aussi simple que:

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

Vous ne souhaitez spécifier aucun BoundField, vous souhaitez simplement lier votre grille à DataReader. Le code suivant m'a aidé à formater DateTime dans cette situation.

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

Les résultats présentés ici. Formatage DateTime


4
vous avez des compétences malades bro
Ruchan
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.