2012-05-10 265 views
0

我试图解析StringDateTime对象,但它似乎月份始终默认为1。所以我们可以说我给它一个字符串30/05/1970它最终被转化为DateTime对象月份值等于1解析字符串为DateTime对象

下面的代码:

public static DateTime ToDateTime(this String value, String format) 
    { 
     Contract.Requires(!String.IsNullOrEmpty(value)); 
     Contract.Requires(!String.IsNullOrEmpty(format)); 

     DateTime date; 
     if (DateTime.TryParseExact(value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out date)) 
     { 
      return date; 
     }   

     throw new ArgumentException("Input value is not a valid date."); 
    } 

注意,正在传递给方法的格式是dd/mm/yyyy

有什么想法?

+1

月是'MM',不'mm' –

回答

10

您正在使用错误的格式说明符数个月。

它是MM而不是mm。您目前正在将分钟解析为分钟。使用dd/MM/yyyy

+3

没错。到过那里。 – akatakritos

+0

我一直坚持这样的2小时!我尝试了各种各样的东西,但我从来没有想过要改变格式。感谢您指出了这一点!非常感谢:) – Kassem

+0

@Kassem:你应该把这个标记为正确的答案然后 – MiMo