J'ai une DateTime
instance qui a une date et une heure. Comment extraire uniquement la date ou uniquement l'heure?
Réponses:
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
value.Date + ""
renvoie le date 12:00:00 AM
. Utilisez value.Date.ToShortDateString()
pour éviter cela.
Vous pouvez également utiliser DateTime.Now.ToString("yyyy-MM-dd")
pour la date et DateTime.Now.ToString("hh:mm:ss")
pour l'heure.
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.
var currentDateTime = dateTime.Now();
var date=currentDateTime.Date;
yourDateObj.ToShortDateString();
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.