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

C# 如何在新数据列中设置格式日期时间,c#,datatable,C#,Datatable,如何将datetime格式设置为“dd/MM/yyyy”?现在看起来是这样的: dt.Columns.Add(new DataColumn("BeginDate", typeof(DateTime))); dr["BeginDate"] = Ds.Tables["tDocument"].Rows[i]["vc01"].ToString(); 日期/时间格式字符串中的/字符表示“无论格式提供程序的日期分隔符是什么”。由于您不提供格式提供程序,因此使用了Thread.CurrentCulture

如何将
datetime
格式设置为
“dd/MM/yyyy”
?现在看起来是这样的:

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

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

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

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

Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd'/'MM'/'yyyy");
下面是一个演示:

Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
对于您的情况,请尝试以下代码:

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"]);
}
如果要在datagridview中对datetime列进行排序,只需更改列格式,如下所示:

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

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

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

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

 dt.Columns.Add(new DataColumn("BeginDate", typeof(String)));
 dr["BeginDate"] = Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy");
beginDateDataGridViewTextBoxColumn是为“BeginDate”列生成的dataGridView列的名称

如果使用combobox,请使用FormatString格式化它:

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

您没有尝试使用字符串列吗?如何向用户显示数据?这是否绑定到某个网格?格式化数据源是没有意义的。设置数据格式是视图的问题。当我对gridview列进行排序时,若类型是string,那个么排序是错误的,因为它是see string notdate@TanNithirot如果您使用gridview,请查看我的答案如何正确操作。当我在sortbuy时,请购买字符串06/11/2018 09/10/2018 13/09/2018 15/09/2018 17/09/2018 27/08/2018 29/08/2018日期时间2018年11月06日00:00:00 2018年10月09日00:00:00 2018年10月17日00:00:00 2018年9月15日00:00:00 2018年9月13日00:00:00 2018年8月29日00:00:00 27/08/2018@TanNithirot您是否感到惊讶?@TanNithirot如果您将数据源绑定到gridview,并且希望对datetime列进行排序,则需要设置该列的格式。
comboBox1.FormatString = "dd/MM/yyyy";