繁体   English   中英

C# - 字符串未被识别为有效的日期时间

[英]C# - String was not recognized as valid datetime

我有以下方法来验证字符串是否是有效的日期时间:

public bool isDate(string date)
        {
            bool check = false;

            try
            {
                DateTime converted_date = Convert.ToDateTime(date);
                check = true;
            }
            catch (Exception)
            {
                check = false;
            }
            return check;
        }

现在,只要我尝试传递这样的字符串,就会捕获异常“String未被识别为有效日期时间”:

“12/31/2013 12:00:00 AM”

我不明白为什么会这样。 有人可以帮我解决这个问题吗?

而不是try / catch块,尝试DateTime类中的内置TryParse方法。 它将您的字符串作为参数,如果它成功转换,它将把值放在“result”变量中。 它返回一个布尔值,表示它是否有效。

public bool isDate(string date)
{
    var result = new DateTime();

    return DateTime.TryParse(date, out result);
}

您当前的文化设置很可能与提供的格式日期不同。您可以尝试明确指定文化:

CultureInfo culture = new CultureInfo("en-US"); // or whatever culture you want
Convert.ToDateTime(date, culture);

您还可以使用DateTime.TryParseExact并传递格式字符串(例如, MM/dd/yy H:mm:ss zzz ,请在此处查看更多内容)以检查日期是否具有特定格式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM