Мне нужен метод, который преобразует строку в datetime. Формат для даты и времени должен быть dd/MM/yyyy
Если строка находится в любом другом формате, метод возвращает null.DateTime.TryParseExact failed
Это Ват я до сих пор:
private DateTime? StringToDateTime(string value)
{
DateTime? Result = null;
DateTime test = DateTime.Now.Date;
if (DateTime.TryParseExact(value, "dd/MM/yyyy", System.Globalization.CultureInfo.InstalledUICulture, System.Globalization.DateTimeStyles.None, out test))
Result = test;
return Result;
}
и проверить его я использую этот
private void button1_Click(object sender, EventArgs e)
{
string value = "01/01/2015";
DateTime? test = StringToDateTime(value);
if (test == null)
MessageBox.Show("invalid date entered");
else
MessageBox.Show(test.ToString());
}
Теперь проблема заключается в том, что TryParseExact
всегда терпит неудачу. Я также пробовал "dd/mm/yyyy"
как формат, но с теми же результатами.
Так что я должен делать что-то не так. Есть ли у кого-нибудь пример использования DateTime.TryParseExact
или есть ли другой способ сделать это?
EDIT: Это не дубликат, так как «дубликат» ссылка советует использовать TryParseExact в то время как мой вопрос, используя это с самого начала, и спрашивает, почему он не работает
Возможный дубликат [проверка действительной даты с помощью метода DateTime.TryParse] (http://stackoverflow.com/questions/11310439/valid-date-check-with-datetime-tryparse-method) – Liam
Работает для меня. Можете ли вы опубликовать короткую, но полную программу, которая показывает ошибку? – Chris
Что такое 'значение' точно? Не могли бы вы отладить свой код и рассказать нам? А что такое 'InstalledUICulture'? Без этой информации невозможно помочь вам. –