我无法完成这项工作 - 总是返回False。
我在这里想念什么?
DateTimeOffset parsedDate;
if ( DateTimeOffset.TryParseExact("2012-10-31 23:59:59", "YYYY-MM-dd HH:mm:ss"
, CultureInfo.InvariantCulture
, DateTimeStyles.None, out parsedDate) == false)
{
throw new ArgumentException("dateToPare", dateToParse);
}
答案 0 :(得分:10)
yyyy
应该是低级的。
答案 1 :(得分:5)
尝试将年份视为“yyyy” - 小写
答案 2 :(得分:2)
试试这个:
[TestCase("2012-10-31 10:59:59", 2012, 10, 31, 10, 59, 59)]
[TestCase("2012-10-31 23:59:59", 2012, 10, 31, 23, 59, 59)]
public void ParseExactTest2(string dateTimeString, int year, int month, int day, int hour, int minute, int second)
{
DateTime actual = DateTime.ParseExact(dateTimeString, "yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.None);
DateTime expected = new DateTime(year, month, day, hour, minute, second);
Assert.AreEqual(expected, actual);
}
指出:yyyy必须是小写的。 如果要抛出异常,另一种方法是使用ParseExact而不是TryParseExact。使用ParseExact,您可以免费获得框架抛出的正确异常。 也许尝试捕获它并抛出你的argumentexception,并将parseexception作为innerexception。