【问题标题】:String wasn't recognized as a valid datetime字符串未被识别为有效的日期时间
【发布时间】:2012-06-19 12:55:17
【问题描述】:

尝试将字符串解析为日期时间时出现错误。 我试过这个:

string x = "31/5/2012";   
DateTime d = DateTime.ParseExact(x, "dd'/'MM'/'yyyy", new CultureInfo("en-US"));

和

string x = "31/5/2012";
DateTime d = DateTime.ParseExact(x, "dd/MM/yyyy", new CultureInfo("en-US"));

和

string x = "31/5/2012";  
DateTime d = DateTime.ParseExact(x, "dd/MM/yyyy", cultureinfo.invariantculture));

但我仍然遇到同样的错误。

我需要做什么?

【问题讨论】:

    标签: winforms visual-studio-2010 c#-4.0


    【解决方案1】:
    DateTime d = DateTime.ParseExact(x, "dd/M/yyyy", new CultureInfo("en-US"));
    

    由于您的字符串日期的月份为 5 而不是 05,因此请使用单个 M

    【讨论】:

    • 假设有必要解析1/1/2001 和31/12/2001 以及31/5/2001,是否有一个字符串(可能是"d/M/yyyy")可以识别所有这些?
    • @JonathanLeffler, "d/M/yyyy" 适用于 1/1/2001 和 31/12/2001
    【解决方案2】:
            string x = "31/5/2012";
    
            DateTime d = DateTime.ParseExact(x, "dd/M/yyyy", new CultureInfo("en-US"));
    

    【讨论】:

    • 同样的问题:假设有必要解析1/1/2001 和31/12/2001 以及31/5/2001,是否有一个字符串(可能是"d/M/yyyy")可以识别所有这些?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 2013-02-07
    • 1970-01-01
    • 2011-10-21
    • 1970-01-01
    • 2015-09-30
    相关资源
    最近更新 更多