我正在尝试从字符串转换为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);
无法将类型'string'隐式转换为'System.DateTime'
任何人都可以帮我解决错误的语法。
答案 0 :(得分:12)
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
}
答案 1 :(得分:6)
我猜你错了 - 将Convert.ToString(s2)
更改为Convert.ToDateTime(s2)
。
答案 2 :(得分:5)
您应该使用DateTime.Parse
或DateTime.ParseExact
。
DateTime dt= DateTime.Parse("11/23/2010");
string s2=dt.ToString("dd-MM-yyyy");
DateTime dtnew = DateTime.Parse(s2);
两者都有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);
}
答案 3 :(得分:4)
DateTime dtnew = Convert.ToString(s2);
问题是您将string s2
再次转换为字符串并将其存储在DateTime variable
试试这个:
DateTime dt = Convert.ToDateTime("11/23/2010");
string s2 = dt.ToString("dd-MM-yyyy");
DateTime dtnew = Convert.ToDateTime(s2);
答案 4 :(得分:2)
如果您需要指定格式,请尝试DateTime.Parse(...)
或DateTime.ParseExact(...)
。
答案 5 :(得分:1)
DateTime.Parse("01/01 2010");
或使用
DateTime.TryParse
如果你不确定它每次转换,即。不总是约会,但有时候是空白。
答案 6 :(得分:0)
这对我有用。
DateTimeConverter c = new DateTimeConverter();
DateTime dt = (DateTime)c.ConvertFromString("2012-05-10");
或
DateTime dt2 = (DateTime)TypeDescriptor.GetConverter(dt).ConvertFrom("2012-05-21");
答案 7 :(得分:-2)
您需要将双引号(""
)更改为单引号(''
)