c#字符串日期格式从d.M.yyyy到yyyy-MM-dd

时间:2014-05-17 09:33:29

标签: c# mysql date datetime date-format

请问,我如何将日期字符串从我的csv导入转换为网格和mysql数据库?

我以dd.MM.yyyy格式导入日期,我必须为mysql数据库格式化yyyy-MM-dd。

我的数据网格行代码是

dataGridView1.Rows.Add(counter, "1", lineIn[0], ControlPrice, lineIn[3]);

lineIn [0]是日期字符串... 谢谢

3 个答案:

答案 0 :(得分:2)

最好使用DateTime.ParseExact

根据您的示例,您需要在传递给函数之前强制转换为字符串。

您还应该考虑如果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");