DateTime.ParseExact()
позволяет вам определить пользовательский формат строки, которую вы хотите проанализировать, и тогда у вас есть хороший DateTime
объект для использования.
Но если вы говорите, что у вас могут быть странные форматы, такие как «год час: минута», я думаю, вы можете использовать RegEx.
string example = "31-12-2010";
Match m = Regex.Match(example, @"^(?<day>\d\d?)-(?<month>\d\d?)-(?<year>\d\d\d\d)$");
string strDay = m.Groups["day"].Value;
string strMonth = m.Groups["month"].Value;
string strYear = m.Groups["year"].Value;
Для строки "2010 12:44" вы можете использовать шаблон @"^(?<year>\d\d\d\d) (?<hour>\d\d?):(?<minute>\d\d?)$"
Для строки "12-2010" вы можете использовать шаблон @"^(?<month>\d\d?)-(?<year>\d\d\d\d)$"