4

在 C# 中,我从字符串中解析日期,但它给了我错误

DateTime.Parse("07/26/2012");

错误

 System.FormatException: String was not recognized as a valid DateTime.
   at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles)
   at System.DateTime.Parse(String s)

它与日期格式有关吗?和我的电脑设置有关吗?

谢谢

4

4 回答 4

9

默认情况下,Parse使用您当前的文化。ParseExact允许您手动指定日期格式。

试试这个:

DateTime date = DateTime.ParseExact("07/26/2012", "MM/dd/yyyy", CultureInfo.InvariantCulture);

InvariantCulture选项允许您忽略系统上的当前文化设置。

于 2012-07-26T14:00:18.933 回答
5

也许您运行它的文化与此日期格式不兼容。你可以使用InvariantCulture

DateTime.Parse("07/26/2012", CultureInfo.InvariantCulture);

请记住,该Parse方法使用当前线程区域性。

于 2012-07-26T14:00:41.663 回答
0

使用 ParseExact 方法:http: //msdn.microsoft.com/en-us/library/w2sa9yss.aspx

string dateString = "Mon 16 Jun 8:30 AM 2008"; // Modified from MSDN
string format = "ddd dd MMM h:mm tt yyyy";

DateTime dateTime = DateTime.ParseExact(dateString, format,
    CultureInfo.InvariantCulture);
于 2012-07-26T13:59:51.430 回答
0
 Thread.CurrentThread.CurrentUICulture = new CultureInfo( "en-US", false );

来自: http: //msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.currentculture (v=vs.71).aspx

确保正确解析日期。

于 2012-07-26T14:03:44.483 回答