使用DateTime.TryParse()检查多种日期格式

Etr*_*rit 8 c#

我正在使用一种方法来验证文本框.

    public bool ValidateDateTimeTextBoxes(params TextBox[] textBoxes)
    {
        DateTime value = DateTime.Today;
        //string dateFormat = "dd/mm/yyyy";

        foreach (var textBox in textBoxes)
        {
            if (!DateTime.TryParse(textBox.Text, out value))
            {
                return false;
            }
        }

        return true;
    }
Run Code Online (Sandbox Code Playgroud)

我也想查看格式.它需要mm/dd/yyyy,但希望它是dd/mm/yyyy

Sac*_*hin 17

尝试DateTime.TryParseExact

DateTime dt;

DateTime.TryParseExact(textBox.Text, 
                       "dd/MM/yyyy", 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       out dt);
Run Code Online (Sandbox Code Playgroud)

如果要在问题中更新时检查多种格式,则可以使用另一种重载方法,TryParseExact该方法将format参数作为字符串数组.

string[] formats = { "dd/MM/yyyy", "MM/dd/yyyy" };
DateTime.TryParseExact(txtBox.Text, 
                       formats, 
                       CultureInfo.InvariantCulture, 
                       DateTimeStyles.None, 
                       out value));
Run Code Online (Sandbox Code Playgroud)

请注意格式字符串.正如你所提到的格式为dd/mm/yyyy.这里mm代表的minute不是月份.使用MM月表示.