如何在新数据列中设置格式日期时间

时间:2018-09-14 03:40:08

标签: c# datatable

dt.Columns.Add(new DataColumn("BeginDate", typeof(DateTime)));

dr["BeginDate"] = Ds.Tables["tDocument"].Rows[i]["vc01"].ToString();

如何将datetime格式设置为"dd/MM/yyyy"?现在,它看起来像这样:

14/09/2018 00:00:00

3 个答案:

答案 0 :(得分:0)

日期/时间格式字符串中的/字符表示“格式提供者的日期分隔符是什么”。由于您未提供格式提供程序,因此使用Thread.CurrentCulture,在您的情况下,使用当前区域性。作为日期分隔符。 如果要使用文字斜杠,请将其放在单引号内:

Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd'/'MM'/'yyyy");

或者,您可以指定格式提供程序,其中日期分隔符为/:

Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

答案 1 :(得分:0)

这是一个演示:

DataTable dt = new DataTable();
dt.Columns.Add("BeginDate", typeof(string));

DataRow dr = dt.NewRow();
dr["BeginDate"] = DateTime.Now.ToString("dd/MM/yyyy");
dt.Rows.Add(dr);

foreach (DataRow item in dt.Rows)
{
    Console.WriteLine(item["BeginDate"]);
}

对于您的情况,请尝试以下代码:

dt.Columns.Add(new DataColumn("BeginDate", typeof(string)));

dr["BeginDate"] = Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy");

如果您想对datagridview中的datetime列进行排序,则只需要更改列格式,例如下面的内容:

dataGrid.Columns["colName"].DefaultCellStyle.Format = "dd/MM/yyyy";

答案 2 :(得分:0)

如果使用datagridview,则需要格式化其列,而不是数据源。否则,您将无法按日期对列进行排序。如果允许Datagridview编辑数据,则可以放置任何内容。

var row = dataTable1.NewRow();
row["BeginDate"] = DateTime.Now;
dataTable1.Rows.Add(row);
dataGridView1.Columns["beginDateDataGridViewTextBoxColumn"].DefaultCellStyle.Format = "dd/MM/yyyy";

beginDateDataGridViewTextBoxColumn是为“ BeginDate”列生成的dataGridView列的名称。

如果您使用组合框,则使用FormatString对其进行格式化:

comboBox1.FormatString = "dd/MM/yyyy";