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
答案 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";