Convert.ToDateTime
метод использует DateTime.Parse
метод явно с CurrentCulture
настройки, если вы не обеспечивают IFormatProvider
.
Похоже, что M/dd/yyyy
не standard date and time format вашего CurrentCulture
, и именно поэтому он бросает FormatException
.
Вы можете использовать методы DateTime.ParseExact
или DateTime.TryParseExact
, чтобы указать свой собственный формат строки;
string s = "3/31/2015";
DateTime dt;
if(DateTime.TryParseExact(s, "M/dd/yyyy", CultureInfo.InvariantCulture,
DateTimeStyles.None, out dt))
{
Console.WriteLine(dt); // 31/03/2015 00:00:00
}
"/"
separator имеет особое значение, как заменить меня с текущей культурой или поставкой даты культуры сепаратором. Это означает, что когда вы разбираете строку с этим разделителем, ваш синтаксический анализ может привести к ошибке даже, если ваша строка и формат точно совпадают. Вы можете избежать этого символа как '/'
, не беспокоясь об этом.
string s = "3/31/2015";
DateTime dt = DateTime.ParseExact(s, "M'/'dd'/'yyyy", CultureInfo.CurrentCulture);
Какова ценность 'date.Text' и что такое' CurrentCulture'? Не могли бы вы отладить свой код и рассказать нам? –
сообщение об ошибке понятно ... ваша строка недействительна DATETIME – puko
Вы также можете попробовать DateTime.Parse() и DateTime.TryParse(), но, как говорили другие комментаторы, ваша строка недействительна. – TheEdge