c# - 使用 DateTime.TryParse() 检查几种日期格式

标签 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;
    }

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

最佳答案

尝试 DateTime.TryParseExact

DateTime dt;

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

如果您想在更新问题时检查多种格式,那么您可以使用 TryParseExact 的另一种重载方法,该方法将 format 参数作为字符串数组。

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

请注意格式字符串。正如您提到的 dd/mm/yyyy 格式。这里 mm 代表 分钟 而不是月份。使用 MM 表示月份。

关于c# - 使用 DateTime.TryParse() 检查几种日期格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16767917/

相关文章:

c# - 将具有依赖项 v1 的项目添加到具有依赖项 v1.1 的项目

c# - wpf 附加属性不起作用

c# - 我的 ItemsControl 和数据绑定(bind)有什么问题?

c# - C# 中的变体规则

c# - 如何拆分字符串并删除每个第 n 个元素?

c# - Expression.Call 导致 "Static method requires null instance, non-static method requires non-null instance"

c# - 如果在 ListView 中没有选择行,如何防止上下文菜单弹出

c# - 使用 .NET 连接到 iSeries DB2 数据库

c# - 远程服务器返回错误 : "(405) Method Not Allowed"

c# - Item PropertyChanged 不适用于 observableCollection。为什么?