How to check if a string is a valid DateTime according to a specific format in C#

2 Answers

0 votes
using System;
using System.Globalization;

class Program
{
    public static bool IsDateTime(string dt) {
        DateTime tmpDate; 
        
        var formats = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
        
        return DateTime.TryParseExact(dt, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out tmpDate);
    }
    static void Main() {
        Console.WriteLine(IsDateTime(DateTime.Now.ToString()));

        Console.WriteLine(IsDateTime("24082023"));
        Console.WriteLine(IsDateTime("24/08/2023"));
        Console.WriteLine(IsDateTime("2023-08-24"));

        Console.WriteLine(IsDateTime("9/4/2023 8:30:53 AM")); 
    }
}




/*
run:

False
False
True
True
False

*/

 



answered Sep 4, 2023 by avibootz
0 votes
using System;
using System.Globalization;

class Program
{
    public static bool IsDateTime(string dt, string[] formats) {
        DateTime tmpDate; 

        return DateTime.TryParseExact(dt, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out tmpDate);
    }
    static void Main() {
        Console.WriteLine(IsDateTime(DateTime.Now.ToString(), new[] { "dd/MM/yyyy", "yyyy-MM-dd" }));

        Console.WriteLine(IsDateTime("24082023", new[] { "dd/MM/yyyy", "yyyy-MM-dd" }));
        Console.WriteLine(IsDateTime("24/08/2023", new[] { "dd/MM/yyyy", "yyyy-MM-dd" }));
        Console.WriteLine(IsDateTime("2023-08-24", new[] { "dd/MM/yyyy", "yyyy-MM-dd" }));

        Console.WriteLine(IsDateTime("9/4/2023 8:30:53 AM", new[] { "dd/MM/yyyy", "yyyy-MM-dd" })); 
    }
}




/*
run:

False
False
True
True
False

*/

 



answered Sep 4, 2023 by avibootz

Related questions

1 answer 123 views
1 answer 150 views
1 answer 193 views
1 answer 176 views
...