Я использовал текстовое поле для хранения даты в формате DD-MM-YYYY и так как я использую SQL-сервер, я раньше получал значение от текстового поля и затем помещал его в переменную DateTime dt типа
DateTime dt = DateTime.ParseExact(TextBox10.Text,"MM-DD-YYYY",CultureInfo.InvariantCulture);
Я получаю ошибку спецификации формата, я прошел многих документация, но все еще не мог добраться, где я иду не так, как надо
Это я использую C# и ADO.net, кто-либо может исправить меня?
Похоже, вы перепутали ДД и ММ. Попробуйте ниже:
DateTime dt = DateTime.ParseExact(TextBox10.Text,"dd-MM-yyyy",CultureInfo.InvariantCulture);
Обратите внимание, что я изменил «DD» на «dd»!
ОБНОВЛЕНИЕ:
Хорошо, я изменил «ГГГГ» на «гггг» и запустил приведенный ниже код, и он успешно проанализировал:
DateTime dt = DateTime.ParseExact("28-01-2010", "dd-MM-yyyy", provider);
Если ваши пользователи действительно передают даты в формате «дд-ММ-гггг» "это должно сработать для вас. Имейте в виду, что вторая строка не имеет ничего общего с тем форматом, который вы храните в своей базе данных. Это связано только с форматом первого строкового аргумента в ParseExact. HTH.
Как упоминалось выше, строка формата даты чувствительна к регистру.
Однако вы уверены, что хотите использовать DateTime.ParseExact вместо DateTime.Parse?
попробуйте это
DateTime.ParseExact("12-12-2010", "MM-dd-yyyy", System.Globalization.CultureInfo.InvariantCulture)
Позаботьтесь о корпусе строки формата даты. «dd» может отличаться от «DD»