0

可能重复:
DateTime.ParseExact 字符串格式异常

FormatException被找到 !

我试图将字符串转换为DateTime.

string dateString1 = "5/22/1985 12:00:00 AM";

DateTime myDate = 
    DateTime.ParseExact(dateString1, 
                        "mm-dd-yyyy",
                        System.Globalization.CultureInfo.InvariantCulture);

它给了我一个错误,但是当我尝试以这种格式转换字符串时

string dateString2 = "10-10-2000";

这第二个字符串工作得很好,但dateString1不起作用!

4

4 回答 4

6

您的代码回答了您的问题。您正在使用ParseExact,它的格式不接受您的第一个字符串。

从 MSDN (http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx):

使用指定的格式和特定​​于区域性的格式信息将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示的格式必须与指定的格式完全匹配。

于 2013-01-23T20:11:20.177 回答
1

试试这个:

DateTime myDate = DateTime.ParseExact(dateString1, "M/d/yyyy h:m:s tt", System.Globalization.CultureInfo.InvariantCulture);
于 2013-01-23T20:13:47.480 回答
0

您专门使您的代码完全根据格式“mm-dd-yyyy”解析日期,因此当然只有具有该格式的日期才能工作。如果您改用 DateTime.Parse,则这两个示例都可以使用。

于 2013-01-23T20:13:13.893 回答
0

您可以使用 Parse 而不是 ParseExact:

DateTime myDate = DateTime.Parse(dateString1);

这应该正确解析您的两个示例中的任何一个。 http://msdn.microsoft.com/en-us/library/1k1skd40.aspx

于 2013-01-23T20:17:12.917 回答