[英]How to format datetime to only specific DATE format in datatable
在我的 datagridview1 中,日期列显示格式“MM/dd/yyyy hh:mm:ss”
然后我使用这个代码。
我使用一个函数来填充这样的 datagridview
public void load_table()
{
DataTable ltdgv = getLoad_table();
//the getLoad_table() function return a datatable type and store it to ltdgv
foreach (DataRow dr in ltdgv.Rows)
{
dr["DATE"] = DateTime.Parse((dr["DATE"].ToString())).ToShortDateString();
}
dataGridView1.DataSource = ltdgv;
}
但 DATE 列仍显示格式 MM/dd/yyyy [例如:11/27/2016]
但我想把它改成 dd/MM/yyyy 或 27/11/2016
我试着把它改成 =
dr["DATE"] = DateTime.Parse((dr["DATE"].ToString("dd/MM/yyyy"))).ToShortDateString();
// I fill a parameter to the .ToString()
但我现在收到“语法错误”。
那么,如何解决这个问题?
不要尝试更改数据表中日期时间列的“格式”。
只是 DateTime 本身没有格式。
它是您用来显示日期的工具,它的任务是以人类可读的格式呈现它,无论这种格式是什么。
换句话说。 DataGridView 必须执行此任务。
你只需要设置
dataGridView1.Columns[0].DefaultCellStyle.Format = "dd/MM/yyyy";
(假设索引为零的网格列是您的日期列)
将自定义格式放在输出ToString()
,而不是输入中。
foreach (DataRow dr in ltdgv.Rows)
{
dr["DATE"] = DateTime.Parse((dr["DATE"].ToString())).ToString("dd/MM/yyyy");
}
在 asp:BoundField 的情况下
<asp:BoundField DataField="BirthDate" HeaderText="Birth Date" DataFormatString = "{0:dd/MM/yyyy}" />
在 asp:TemplateField 的情况下
<asp:TemplateField HeaderText="Birth Date" ItemStyle-Width="120px" >
<ItemTemplate>
<asp:Label Text='<%# Eval("BirthDate", "{0:dd, MMM yyyy}") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.