转换为DateTime格式

时间:2013-04-24 02:32:29

标签: c# datetime formatting datetime-format typeconverter

您好有办法将此字符串“星期六04/23/2013 11:05 PM”转换为有效的日期时间格式吗?

因为每次执行这个条件时它都会给我FormatExceptionError:

  

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

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

这个问题有解决方法吗?

4 个答案:

答案 0 :(得分: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)

enter image description here

答案 1 :(得分: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
}

答案 2 :(得分:0)

字符串未被识别为有效的DateTime,因为周的日期不正确

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

当你的datetime语句是Contradiction时,可能会发生异常。

希望有所帮助...

答案 3 :(得分: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);

enter image description here