转换为日期时间格式
你好有没有办法将这个字符串“星期六04/23/2013 11:05 PM”转换为有效的日期时间格式?转换为日期时间格式
因为它给了我FormatExceptionError每次我执行这个条件:
字符串未被识别为有效的DateTime,因为一周中的一天是不正确的。
if(DateTime.Parse("Saturday 04/23/2013 11:05 PM") < DateTime.Today)
{
//code here
}
是否有一个解决这个问题?
使用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。按照OP的说法给出相同的错误。 – 2013-04-24 02:36:39
删除-1 ...现在它也有点作弊 - 解析将处理有效的日期就好... OP要求无效的日期出于某种原因:) – 2013-04-24 02:51:27
是的。应该是星期二。对不起,我忘了更改dddd。 xD – 2013-04-24 03:18:40
字符串是由于周的当天不正确,因此未将其识别为有效的DateTime。
04/23/2013是星期二,不是星期六。
也许当你的日期时间语句是矛盾时会发生异常。
希望它可以帮助...
哈哈哈。对不起。 :) – 2013-04-24 03:09:56
那么,为什么我得到-1票?我们试图给你解决方案...:\ – user151465464 2013-04-24 03:53:52
我没有-1投票给你,先生。 – 2013-04-27 02:58:47
的日期和星期不匹配。 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);
嘿,为什么-1。它有什么问题? – 2013-04-24 02:43:22
哈哈哈。对不起!这帮助我追踪了这个问题。 :) – 2013-04-24 02:52:53
如果你希望无效数据,你应该使用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
}
很难无效值转换为有效的一个。你可以做字符串操作......你能简单地拒绝无效值吗? – 2013-04-24 02:37:53
@AlexeiLevenkov:当我们给出格式时,为什么解析确实不起作用。 – 2013-04-24 02:38:35
为什么有人把每个人都献给-1?你愿意解释吗? – Harrison 2013-04-24 02:48:58