1

Hello is there a way to convert this string "Saturday 04/23/2013 11:05 PM" to a valid DateTime Format?

Because it gives me FormatExceptionError everytime I execute this condition:

String was not recognized as a valid DateTime because the day of week was incorrect.

if(DateTime.Parse("Saturday 04/23/2013 11:05 PM") < DateTime.Today)
{
//code here
}

Is there a solution to this problem?

4

4 回答 4

4

利用DateTime.ParseExact()

string _strdate = "Tuesday 04/23/2013 11:05 PM"; // should be tuesday
DateTime _date = DateTime.ParseExact(_strdate,"dddd MM/dd/yyyy hh:mm tt", 
                                     CultureInfo.InvariantCulture)

在此处输入图像描述

于 2013-04-24T02:34:39.740 回答
1

如果您期望无效数据,您应该使用TryParseTryParseExact

DateTime myDate;
if(DateTime.TryParse("Saturday 04/23/2013 11:05 PM", out myDate))
{
   if (myDate < DateTime.Today) { //code here }
}
else
{
   //Do something here for invalid data
}
于 2013-04-24T02:42:03.640 回答
0

由于星期几不正确,字符串未被识别为有效的 DateTime 。

04/23/2013 是星期二,而不是星期六。

当您的日期时间声明是矛盾时,可能会发生异常。

希望它有帮助...

于 2013-04-24T02:38:25.127 回答
0

日期和星期几不匹配。2013 年 4 月 23 日是星期二而不是星期六。在世界任何日历中,您都不会将这一天定为星期六。这就是为什么它给出错误String was not recognized as a valid DateTime because the day of week was incorrect.

所以它可能会转换您的日期然后验证。因此,它在验证中失败。

但是当提供星期二时,这将起作用。

string str = "Tuesday 04/23/2013 11:05 PM";

DateTime dt = DateTime.ParseExact(str, "dddd MM/dd/yyyy hh:mm tt", CultureInfo.InvariantCulture);

在此处输入图像描述

于 2013-04-24T02:40:04.600 回答