У меня есть следующий код:Не удается получить DateTime.TryParseExact работать
string[] format = { "yyyy/MM/dd", "MM/dd/yyyy" };
DateTime valueDate;
value = value.Replace("-", "/");
if (DateTime.TryParseExact(value, format, CultureInfo.InvariantCulture, DateTimeStyles.None, out valueDate))
{
value = "TO_DATE(" + valueDate + ", 'yyyy-mm-dd')";
}
else
{
throw new Exception("Could not parse incoming date: " + valueDate);
}
Так что теперь у меня есть тестовый пример. И значение = '2013/01/21' после оператора замены, заменяющего «-» на «/».
Это должно соответствовать первому формату в массиве строк формата. Но TryParseExact не работает и всегда идет по пути else. У кого-нибудь есть ошибки в этом коде?
Почему бы не добавить еще два формата в массив? – Oded
@ SonerGönül Текущая культура не имеет значения, когда OP проходит «CultureInfo.InvariantCulture». – James
Ох. И с точки зрения вещей вы объединяете SQL. Было бы лучше использовать параметризованный запрос и перейти непосредственно к 'DateTime'. – Oded