我有一个DataTable,我在页面加载事件中填充CSV文件。
在向用户显示数据之前,我需要按日期然后按小时对它们进行排序。
它对数据进行了很好的排序,但是当它们再次显示给用户时,我想格式化日期列,使其显示在" dd / MM / yyyy"格式。
我正在使用以下代码来执行此操作
DateTime d;
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Rows[i].ItemArray.Length; j++)
{
if (j == 0)
{
d = DateTime.Parse(dt.Rows[i][j].ToString());
dt.Rows[i].ItemArray[j] = (string.Format("{0:dd/MM/yyyy}", d)).ToString();
}
}
但dt.Rows[i].ItemArray[j]
的值永远不会更新为我需要的格式。
我不知道为什么不这样做
答案 0 :(得分:3)
假设Date单元格中的数据类型是字符串:
string strDate = (!(dt.Rows[i][j] is DbNull)) ? DateTime.Parse(dt.Rows[i][j]).ToString("dd/MM/yyyy") : "Unknown";
dt.Rows[i][j] = strDate;
你可以走得更远:
string strDate = "Unknown";
DateTime date;
if (DateTime.TryParse(dt.Rows[i][j], out date))
{
strDate = date.ToString("dd/MM/yyyy");
}
dt.Rows[i][j] = strDate;
希望这会有所帮助。