将字符串转换为日期时间会导致错误



可能的重复项:
日期时间.解析精确字符串格式异常

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不起作用!

你的代码回答了你的问题。您使用的是 ParseExact ,它被赋予的格式不接受您的第一个字符串。

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

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

试试这个:

DateTime myDate = DateTime.ParseExact(dateString1, "M/d/yyyy h:m:s tt", System.Globalization.CultureInfo.InvariantCulture);

您专门使您的代码完全按照"mm-dd-yyyy"格式解析日期,因此当然只有具有该格式的日期才有效。如果改用 DateTime.Parse,则这两个示例都有效。

你可以

使用 Parse 而不是 ParseExact:

DateTime myDate = DateTime.Parse(dateString1);

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

相关内容

  • 没有找到相关文章

最新更新