C# 日期时间转换

C# 日期时间转换,c#,calendar,asp.net-4.0,C#,Calendar,Asp.net 4.0,我正在尝试将字符串转换为DateTime,并将其格式从05/06/2012 12:00:00更改为2012-06-05 12:00:00.000以在数据库中搜索(SQL Server 2008 R2)DateTime列类型。原始日期来自日历 我试过这个: string Datereturn = row.Cells[9].Text; DateTime dategiven = DateTime.ParseExact(Dategiven, "YYYY-MM-DD hh:

我正在尝试将字符串转换为
DateTime
,并将其格式从
05/06/2012 12:00:00
更改为
2012-06-05 12:00:00.000
以在数据库中搜索(SQL Server 2008 R2)
DateTime
列类型。原始日期来自日历

我试过这个:

string Datereturn = row.Cells[9].Text; 

DateTime dategiven = DateTime.ParseExact(Dategiven, 
             "YYYY-MM-DD hh:mm:ss[.nnn]", CultureInfo.InvariantCulture);

但是它会弹出一个无效日期时间的错误来解析
05/06/2012 12:00:00

DateTime dategiven = DateTime.ParseExact(Dategiven, 
         "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);
要获取不同格式的字符串,请执行以下操作:

string newFormat = dateGive.ToString("yyyy-MM-dd hh:mm:ss");
我建议阅读MSDN

此外,解析和格式化之间的差异(关于
DateTime
):

  • 解析意味着获取表示日期时间的字符串并从中获取
    datetime
    对象

  • 格式化
    DateTime
    就是获取一个
    DateTime
    对象并从中获取一个字符串,根据需要进行格式化

    • 你能试试这个吗

      DateTime dategiven = DateTime.ParseExact(Dategiven, "dd/MM/yyyy hh:mm:ss", CultureInfo.InvariantCulture);
      

      您应该检查Datereturn的值,以确保它与您用作分析模板的格式相匹配。此外,SQL Server DATETIME字段将与任何有效的字符串日期格式相匹配(例如,“05/06/12 12:00:00”和“2012-06-05 12:00:00.0000”是完全相同的DATETIME值),您可以将该值分配给Datereturn,但随后解析Datereturn。假设这是一个输入错误,那么解析的字符串值是多少?原始日期来自日历!那么可能
      row.Cells[9]。Value
      已经保存了日期时间?