При обработке данных из стороннего источника необходимо было изменить формат даты под используемый нами формат. Дата была формата "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);
}
}
}

