Что касается вашего первого комментария, я не знаю о Filehelpers, но каждая библиотека, с которой я работал, требует, чтобы вы указали формат (ы), которые вы хотите распознать / проанализировать. Средства DateTime .Net ничем не отличаются. Тем не менее, .Net предоставляет полезную функцию, которая может возвращать все встроенные форматы, которые затем можно повторить с TryParse()
( документация ).
Например, следующий код использует встроенный DateTimeFormatInfo.GetAllDateTimeFormats()
(документация здесь ) для циклического перебора 128 пользовательских форматов даты и времени. (Этот код демонстрирует «круговую передачу»: преобразование даты в строки и последующий анализ строк):
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
DateTimeFormatInfo myDTFI = new CultureInfo("en-US", false).DateTimeFormat;
char[] formats = { 'd', 'D', 'f', 'F', 'g', 'G', 'm', 'o',
'r', 's', 't', 'T', 'u', 'U', 'y' };
DateTime date1 = new DateTime(2011, 02, 01, 7, 30, 45, 0);
DateTime date2;
foreach (var fmt in formats)
{
foreach (var pattern in myDTFI.GetAllDateTimePatterns(fmt))
{
// "round-trip" = convert the date to string, then parse it
if (DateTime.TryParse(date1.ToString(pattern), out date2))
{
Console.WriteLine("{0:" + pattern + "} (format '{1}')",
date1, pattern);
}
}
}
}
}