无法将类型'string'隐式转换为'System.DateTime'

hap*_*ile 13 c# datetime

我试图从字符串转换为DataTime但发生错误.我使用的是VS 2003,.NET Framework 1.1

DateTime dt = Convert.ToDateTime("11/23/2010");
string s2 = dt.ToString("dd-MM-yyyy");
DateTime dtnew = Convert.ToString(s2);
Run Code Online (Sandbox Code Playgroud)

无法将类型'string'隐式转换为'System.DateTime'

任何人都可以帮我解决错误的语法.

aba*_*hev 13

string input = "21-12-2010"; // dd-MM-yyyy    
DateTime d;
if (DateTime.TryParseExact(input, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d))
{
    // use d
}
Run Code Online (Sandbox Code Playgroud)


Vin*_*ayC 7

我猜你已经打错了 - 改成Convert.ToString(s2)Convert.ToDateTime(s2).


Ode*_*ded 6

你应该使用DateTime.Parse,或DateTime.ParseExact.

DateTime dt= DateTime.Parse("11/23/2010");
string  s2=dt.ToString("dd-MM-yyyy");
DateTime dtnew = DateTime.Parse(s2);
Run Code Online (Sandbox Code Playgroud)

两者都有TryXXX需要传入out参数的变体,但如果解析失败则不会抛出异常:

DateTime dt;
if(td = DateTime.TryParse("11/23/2010", out td))
{
  string  s2=dt.ToString("dd-MM-yyyy");
  DateTime dtnew = DateTime.Parse(s2);
}
Run Code Online (Sandbox Code Playgroud)


Vya*_*Dev 6

DateTime dtnew = Convert.ToString(s2);
Run Code Online (Sandbox Code Playgroud)

问题是您string s2再次转换 为字符串并将其存储在DateTime variable

尝试这个:

DateTime dt = Convert.ToDateTime("11/23/2010");
string  s2 = dt.ToString("dd-MM-yyyy");
DateTime dtnew = Convert.ToDateTime(s2);
Run Code Online (Sandbox Code Playgroud)