Как установить формат datetime в новой колонке данных - PullRequest
0 голосов
/ 14 сентября 2018
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

Ответы [ 4 ]

0 голосов
/ 14 сентября 2018

Если вы используете datagridview, то вам нужно отформатировать его столбец, а не источник данных.В противном случае вы не сможете отсортировать столбец по дате.Datagridview позволит вам поместить что-либо, если вы позволите ему редактировать данные.

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

beginDateDataGridViewTextBoxColumn - это имя столбца dataGridView, который был сгенерирован для столбца «BeginDate».

, если вы используетекомбинированный список, затем отформатируйте его, используя FormatString:

comboBox1.FormatString = "dd/MM/yyyy";
0 голосов
/ 14 сентября 2018

Вот демо:

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");

Если вы хотите отсортировать столбец datetime в сетке данных, вам просто нужно изменить формат столбца, как показано ниже:

dataGrid.Columns["colName"].DefaultCellStyle.Format = "dd/MM/yyyy";
0 голосов
/ 14 сентября 2018

Попробуйте сделать вот так

 dt.Columns.Add(new DataColumn("BeginDate", typeof(String)));
 dr["BeginDate"] = Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy");
0 голосов
/ 14 сентября 2018

Символ / в строках формата даты / времени означает «какой бы ни был разделитель даты поставщика формата». Поскольку вы не предоставляете поставщика форматов, используется Thread.CurrentCulture, а в вашем случае используется текущая культура. в качестве разделителя даты. Если вы хотите использовать буквальный слеш, поместите его в одинарные кавычки:

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

В качестве альтернативы вы можете указать поставщика формата, в котором разделитель даты равен /:

Ds.Tables["tDocument"].Rows[i]["vc01"].ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...