Классическая задача – преобразование формата даты. В C# есть широкий набор с выводом даты в нужном формате, но, когда дата приходит в виде строки, проще воспользоваться классическим разбором строки с использованием регулярных выражений. Ниже пример, как это сделать.

Я использую метод Replace класса Regex, конструкция следующая:

Regex.Replace (string input, string pattern, string replacement, RegexOptions options)

Допустим, к нам приходит дата в формате 'dd.mm.YYYY', например, '01.12.2005', а нам надо получить 'YYYY-mm-dd'.

Тогда строка замены с регулярным выражением будет следующая:

Regex.Replace(datein, "(?<day>\\d{2}).(?<month>\\d{2}).(?<year>\\d{4})", "${year}-${month}-${day}", RegexOptions.None)

Но это не все, что можно сделать с регулярными выражениями в C#. Например, можно предусмотреть возможность даты входящей даты не только в формате 'd.m.YY'. Ниже более универсальное выражение – оно захватит больше возможных вариантов. Правда вывод будет с таким же количеством разрядов, что и на входе.

Regex.Replace(datein, "(?<day>\\d{1,2}).(?<month>\\d{1,2}).(?<year>\\d{2,4})", "${year}-${month}-${day}", RegexOptions.None);