使用ParseExact解析DateTime,我错过了什么?

时间:2012-10-11 16:05:16

标签: c# .net datetime

我正在尝试将以下字符串解析为DateTime:

“04-03-2008-16-18-08”

为了简化我已编写的单元测试,它始终抛出异常“System.FormatException:String未被识别为有效的DateTime。”

    [TestMethod]
    public void TemporaryDateTimeParseTest()
    {
        DateTime.ParseExact("04-03-2008-16-18-08", "dd-MM-yyyy-hh-mm-ss", null);
    }

格式应为日 - 月 - 年 - 小时 - 分 - 秒(从上面可以看出)。根据MSDN对我的描述似乎是对的。我错过了什么?

我见过人们说ParseExact很尴尬,如果这是错误的方法,我怎么能用常规的Parse方法来获取这种格式呢?

2 个答案:

答案 0 :(得分:7)

您需要使用HH 24小时制而非hh制作12小时制。

MSDN Custom Date and Time Format Strings

答案 1 :(得分:2)

您使用12小时格式表示小时,而不是24小时格式。将您的电话改为:

DateTime.ParseExact("04-03-2008-16-18-08", "dd-MM-yyyy-HH-mm-ss", null);