DateTime.TryParseExactメソッドを使うと簡単にParseできる。
using System;
using System.Globalization;
namespace ConsoleApp {
class Program {
static void Main(string[] args) {
Console.WriteLine(ToDate("20200123"));
Console.WriteLine(ToDate("2020/01/23"));
Console.WriteLine(ToDate("2020-01-23 10:15:20"));
Console.WriteLine(ToDate("2020/01/23 10:15:20"));
}
static DateTime ToDate(string value) {
string[] formats = { "yyyyMMdd", "yyyy-MM-dd", "yyyy/MM/dd", "yyyy-MM-dd H:m:s", "yyyy/MM/dd H:m:s" };
if (DateTime.TryParseExact(value, formats, null, DateTimeStyles.None, out var result))
return result;
return default;
}
}
}