【发布时间】:2016-12-27 01:47:06
【问题描述】:
我希望有些东西我看不清楚,但为了简化,我有以下代码
foreach (DataRow row in dt.Rows)
{
row["StartOn"] = Convert.ToDateTime(row["StartOn"].ToString()).ToString("MMM dd").ToString();
}
如果我运行以下代码,我会得到“Aug 09”
Convert.ToDateTime(row["StartOn"].ToString()).ToString("MMM dd").ToString();
如果我在此更改后查看行 [“StartOn”] 中的内容,它包含“8/9/2016 12:00:00 AM”
我无法将我的 DataRow 格式化为“MMM dd”格式
【问题讨论】:
-
格式化后你希望看到什么? MMM 是月份的缩写。 dd 是日期。所以你得到的是正确的。
-
由于迭代每一行,我想将“8/9/2016 12:00:00 AM”的行值转换为“Aug 09”的字符串值。似乎当我尝试替换 row["StartOn"] 值时,它失败了。因为它不保存新的格式化字符串。迭代完成后,DataRow 仍会显示“8/9/2016 12:00:00 AM”
-
您正试图将“Aug 9”字符串存储到日期时间中。 ConvertToDatetime 会将其放回 DateTime 对象中,假设由于您不提供它,所以年份是 2016 年,时间是上午 12:00,即一天的开始
-
将列类型更改为字符串。
-
不,不要将列类型更改为字符串。相反,每当您要输出该列时,将其格式化为仅输出月份和日期。没有理由不能在数据库中拥有完全限定的 DateTime,而只是在要输出或以任何其他方式使用时才使用月份和日期
标签: c# datetime datatable datarow