请问,我如何将日期字符串从我的csv导入转换为网格和mysql数据库?
我以dd.MM.yyyy格式导入日期,我必须为mysql数据库格式化yyyy-MM-dd。
我的数据网格行代码是
dataGridView1.Rows.Add(counter, "1", lineIn[0], ControlPrice, lineIn[3]);
lineIn [0]是日期字符串... 谢谢
答案 0 :(得分:2)
根据您的示例,您需要在传递给函数之前强制转换为字符串。
您还应该考虑如果CSV中存在无效日期会发生什么,您希望如何处理?或者你总是期待一个约会,并希望停止处理?
这是我用来测试的LinqPad示例:
object date = "12.2.2014";
var result = DateTime.ParseExact(date.ToString(), "d.M.yyyy", null).ToString("yyyy-MM-dd");
Console.WriteLine(result);
有关详细信息,请参阅此SO帖子:
DateTime Conversion and Parsing DateTime.Now.ToString(“MM/dd/yyyy hh:mm:ss.fff”)
答案 1 :(得分:1)
万一你的记录可能是空白的,它会在解析到datetime时出错,所以我添加了一个检查空白的条件,然后将其转换为所需的格式。
If(lineIn[0].ToString() != "")
{
dataGridView1.Rows.Add(counter, "1", DateTime.ParseExact(lineIn[0].ToString(), "dd.MM.yyyy", null).ToString("yyyy-MM-dd"), ControlPrice, lineIn[3]);
}
else
{
dataGridView1.Rows.Add(counter, "1", "", ControlPrice, lineIn[3]);
}
答案 2 :(得分:0)
这应该适合你:
var parsedDate = DateTime.ParseExact(lineIn[0], "dd.MM.yyyy", null);
string dateStringInAnotherFormat = parsedDate.ToString("yyyy-MM-dd");