转换为日期时间格式

转换为日期时间格式

问题描述:

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

因为它给了我FormatExceptionError每次我执行这个条件:

字符串未被识别为有效的DateTime,因为一周中的一天是不正确的。

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

是否有一个解决这个问题?

+0

很难无效值转换为有效的一个。你可以做字符串操作......你能简单地拒绝无效值吗? – 2013-04-24 02:37:53

+0

@AlexeiLevenkov:当我们给出格式时,为什么解析确实不起作用。 – 2013-04-24 02:38:35

+0

为什么有人把每个人都献给-1?你愿意解释吗? – Harrison 2013-04-24 02:48:58

使用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

+0

-1。按照OP的说法给出相同的错误。 – 2013-04-24 02:36:39

+0

删除-1 ...现在它也有点作弊 - 解析将处理有效的日期就好... OP要求无效的日期出于某种原因:) – 2013-04-24 02:51:27

+0

是的。应该是星期二。对不起,我忘了更改dddd。 xD – 2013-04-24 03:18:40

字符串是由于周的当天不正确,因此未将其识别为有效的DateTime

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

也许当你的日期时间语句是矛盾时会发生异常。

希望它可以帮助...

+0

哈哈哈。对不起。 :) – 2013-04-24 03:09:56

+0

那么,为什么我得到-1票?我们试图给你解决方案...:\ – user151465464 2013-04-24 03:53:52

+0

我没有-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); 

enter image description here

+0

嘿,为什么-1。它有什么问题? – 2013-04-24 02:43:22

+0

哈哈哈。对不起!这帮助我追踪了这个问题。 :) – 2013-04-24 02:52:53

如果你希望无效数据,你应该使用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 
}