C# 在DataTable中将字符串列转换为DateTime列
我有一个数据表,它来自Excel,日期时间格式如下:dd/MM/yyyy-HH:MM,此字段是数据表中的字符串类型,我想将其转换为DateTime以便排序 我尝试添加DateTime类型的列并将字符串解析为DateTime,但解析失败。第一列具有日期的字符串类型,我将第9列添加为DateTime类型 这是我的代码C# 在DataTable中将字符串列转换为DateTime列,c#,winforms,C#,Winforms,我有一个数据表,它来自Excel,日期时间格式如下:dd/MM/yyyy-HH:MM,此字段是数据表中的字符串类型,我想将其转换为DateTime以便排序 我尝试添加DateTime类型的列并将字符串解析为DateTime,但解析失败。第一列具有日期的字符串类型,我将第9列添加为DateTime类型 这是我的代码 private void loadExcelButton_Click(object sender, EventArgs e) { try
private void loadExcelButton_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog openFileDialog = new OpenFileDialog();
openFileDialog.Filter = "excel|*.xlsx";
openFileDialog.ShowDialog();
this.pathExcel = openFileDialog.FileName;
DataTable aux = Excel.ExcelToDataTable(this.pathExcel);
this.openExcelDT = AddDateColumn(aux);
this.openExcelDT.DefaultView.Sort = "Date asc";
OpenExcelBinding();
}
catch
{
}
}
private void OpenExcelBinding()
{
this.openExcelBind.DataSource = this.openExcelDT;
this.openExcelDGV.AutoGenerateColumns = true;
this.openExcelDGV.DataSource = this.openExcelBind;
this.openExcelDGV.Refresh();
}
private DataTable AddDateColumn(DataTable dataTable)
{
dataTable.Columns.Add("Date", typeof(DateTime));
foreach(DataRow row in dataTable.Rows)
{
string format = "\\\"dd/MM/yyyy - HH:mm\\\"";
DateTime date;
string s = row[0].ToString();
if (DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out date))
{
row[9] = date;
}
}
return dataTable;
}
使用此代码
string format = "\\\"dd/MM/yyyy - HH:mm\\\"";
DateTime date;
string s = row[0].ToString(format);
if (DateTime.TryParseExact(s, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
{
row[9] = date;
}
为什么格式变量有额外的双引号和反斜杠
string format=“dd/MM/yyyy-HH:MM”
无效?第[0]行包含字符串,第[9]行是日期时间类型的新列。是的,这是错误字符串format=“dd/MM/yyyy-HH:MM”;