我正在尝试将以下日期字符串转换为datetime对象。但是由于某种原因,它不起作用。知道可能是什么问题吗?
string dt = "22-08-2018 16:53:00:000";
var date = Convert.ToDateTime(dt);
Console.WriteLine(date);
// Shaiz
答案 0 :(得分:0)
输入字符串似乎错误。随着“ 22-08-2018 16:53:00.000”它将起作用。注意“。”的使用。分隔秒和毫秒
答案 1 :(得分:0)
我认为这可能取决于当前的文化。您的示例中的值似乎是年-月-年,并且如果尝试以“ en-US”文化进行转换(例如),它将产生System.FormatException: String was not recognized as a valid DateTime.
如果您知道日期时间字符串的格式,则可以“强制”将其转换。这是使用示例输入字符串的单元测试:
[TestMethod]
public void TestMethod2()
{
var dtFormat = new DateTimeFormatInfo();
dtFormat.ShortDatePattern = "dd-MM-yyyy"; // force to day-month-year
string dt = "22-08-2018 16:53:00.000";
var date = Convert.ToDateTime(dt, dtFormat);
Assert.AreEqual(new DateTime(2018, 08, 22, 16, 53, 0), date);
}