这就是我的尝试:
string format = "yyyy-MM-dd'T'HH:mm:ss";
DateTime parsedDateTime;
if (DateTime.TryParseExact(reader.Value.ToString(),format, null,
System.Globalization.DateTimeStyles.None, out parsedDateTime))
{
return parsedDateTime;
}
其中reader.Value.ToString()
是
2017-05-01T00:00:000
答案 0 :(得分:5)
你的问题是你的字符串中的3位秒数:
2017-05-01T00:00:000
秒的范围是[0:59]
要么是毫秒,那么您需要将格式调整为:
string format = "yyyy-MM-ddTmm:ss:fff";
或字符串完全错误,你应该删除第三个数字。这是一个有效的例子:
string format = "yyyy-MM-ddTHH:mm:ss";
DateTime parsedDateTime;
if (DateTime.TryParseExact("2017-05-01T00:00:00", format, null,
System.Globalization.DateTimeStyles.None, out parsedDateTime))
{
Console.WriteLine(parsedDateTime.ToString());
}
else
{
Console.WriteLine("FAIL");
}
答案 1 :(得分:1)
您可以使用f
for milliseconds:
var d = DateTime.ParseExact("2017-05-01T12:34:567", "yyyy-MM-ddTHH:mm:ssf", null); //700 ms
如果您只需要日期:
var d = DateTime.Parse("2017-05-01T12:34:567".Split('T')[0]);
或只删除最后一位数字:
var d = DateTime.Parse("2017-05-01T12:34:567".Remove(19));