如何检查日期格式C#

QKW*_*KWS 2 .net c# date-format

我在这里有一个ac#代码块:

    string inputString = textBox1.Text;
    DateTime dt;
    try
    {
        if (DateTime.TryParseExact(inputString, "yyyyMMdd", null, DateTimeStyles.None, out dt) == true)
        {
            dt = dt.AddMonths(6);
            textBox2.Text = dt.ToString("yyyyMMdd");
        }
        else if (DateTime.TryParseExact(inputString, "yyyy.MM.dd", null, DateTimeStyles.None, out dt) == true)
        {
            dt = dt.AddMonths(6);
            textBox2.Text = dt.ToString("yyyyMMdd");
        }
    }   
    catch (Exception ex) { MessageBox.Show(ex.Message); }
Run Code Online (Sandbox Code Playgroud)

基本上,它的作用是,用户在textbox1中输入一个字符串,单击按钮时,C#将检查文本框中的日期格式,然后在日期上添加6个月,然后在textbox2中将其输出为字符串格式yyyyMMdd。如您目前所见,它接受yyyyMMdd和yyyy.MM.dd并执行相同的过程。但是我的问题是我仍然还有很多日期格式:

dd-MM-yy 
yyyy/mm/dd 
yyyy-mm-dd 
yy/mm/dd 
Run Code Online (Sandbox Code Playgroud)

我不想在我的IF语句中使用OR。是否有类似格式的方法被接受并执行该过程。非常感谢你们!

小智 5

TryParseExact 重载之一接受字符串数组作为其第二个参数。但是,它不会确切告诉您使用了哪种格式。如果您确实需要这些信息,那么可以,只需使用所需的每种格式运行一种格式的TryParseExact,然后查看哪种格式有效。

而且,当然,您需要确保所允许的所有格式对于日期,月份和年份中的哪个部分是明确的,否则您可能会将03/02/01解析为六个可能的日期中的任何一个。