繁体   English   中英

如何将日期时间格式化为数据表中的特定日期格式

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM