При обработке данных из стороннего источника необходимо было изменить формат даты под используемый нами формат. Дата была формата "28 февраля 2014 г.", т.е. это была строка с русским названием месяца. И еще "г." в конце.
Для преобразование такой строки в дату не подойдет автоматический метод преобразования строки в дату Convert.ToDateTime. В данном случае потребуется использование метода DateTime.ParseExact и класс CultureInfo, который предназначен для работы с региональной культурой – с названиями дней и месяцев календарей, форматами дат, сортировкой по алфавиту и т.д.
Значения региональных параметров для CulterInfoможно посмотреть на странице http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx, а формат даты – в MSDNовском описании Custom Date and Time Format Strings.
Для преобразования строки "28 февраля 2014 г." в формат DateTime и дальнейшей работой, я написал небольшой фрагмент кода. Код получился немного академическим, но аккуратность – не лишнее качество программиста. Для наглядности и простоты привожу код консольного приложения.
using System; using System.Globalization; using System.Text; namespace ConvertRusStringDateToDateTime { class Program { static void Main(string[] args) { string rusdate, format, spresult; DateTime result; rusdate = "28 февраля 2014 г."; format = "dd MMMM yyyy г."; CultureInfo provider = CultureInfo.CreateSpecificCulture("ru-RU"); try { result = DateTime.ParseExact(rusdate, format, provider); spresult = result.ToString("dd-MM-yyyy"); Console.WriteLine(spresult); } catch (Exception ex){ Console.WriteLine(ex.Message); } Console.WriteLine("Press any key to continue"); Console.ReadKey(true); } } }