您好有办法将此字符串“星期六04/23/2013 11:05 PM”转换为有效的日期时间格式吗?
因为每次执行这个条件时它都会给我FormatExceptionError:
字符串未被识别为有效的DateTime,因为星期几不正确。
if(DateTime.Parse("Saturday 04/23/2013 11:05 PM") < DateTime.Today)
{
//code here
}
这个问题有解决方法吗?
答案 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)
答案 1 :(得分:1)
如果您希望使用无效数据,请使用TryParse或TryParseExact
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);