Невозможно неявно преобразовать тип "string" в " System.Датавремя'

Я пытаюсь преобразовать из строки в DataTime, но возникает ошибка. Я использую VS 2003, .NET Framework 1.1

DateTime dt = Convert.ToDateTime("11/23/2010");
string s2 = dt.ToString("dd-MM-yyyy");
DateTime dtnew = Convert.ToString(s2);

невозможно неявно преобразовать тип 'string' в ' System.DateTime'

может ли один помочь мне с синтаксисом, как решить ошибку.

7 ответов


string input = "21-12-2010"; // dd-MM-yyyy    
DateTime d;
if (DateTime.TryParseExact(input, "dd-MM-yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d))
{
    // use d
}

Я думаю, что вы сделали опечатку - изменение Convert.ToString(s2) до Convert.ToDateTime(s2).


DateTime dtnew = Convert.ToString(s2);

проблема в том, что ваше преобразование string s2 для строки снова и сохранить его в DateTime variable

попробуйте это:

DateTime dt = Convert.ToDateTime("11/23/2010");
string  s2 = dt.ToString("dd-MM-yyyy");
DateTime dtnew = Convert.ToDateTime(s2);

вы должны использовать DateTime.Parse или DateTime.ParseExact.

DateTime dt= DateTime.Parse("11/23/2010");
string  s2=dt.ToString("dd-MM-yyyy");
DateTime dtnew = DateTime.Parse(s2);

как есть TryXXX варианты, которые требуют передачи параметра out, но не будут выдавать исключение, если синтаксический анализ не удался:

DateTime dt;
if(td = DateTime.TryParse("11/23/2010", out td))
{
  string  s2=dt.ToString("dd-MM-yyyy");
  DateTime dtnew = DateTime.Parse(s2);
}

попробовать DateTime.Parse(...) или DateTime.ParseExact(...) Если вам нужно указать формат.


DateTime.Parse("01/01 2010"); или использовать DateTime.TryParse если вы не уверены, что он преобразуется каждый раз, т. е. не всегда, но иногда пустой.


вам нужно изменить двойные кавычки ("") в одинарные кавычки ('')