2015-06-17 4 views
-3

У меня есть строка, и я должен преобразовать ее в тип DateTime.Разбор строки в DateTime

'11 Jun 2015 (12:10)' 

Мне нужно разобрать его в DateTime. Я использовал DateTime.Parse("MyDateString"), но это исключение.

Строка не была признана действительной DateTime.

Мне нужно разбить строку, чем преобразовать ее в формат DateTime или есть простой способ?

+0

Из ckryczek ссылки упоминавшегося выше: «DateTime.Parse() попытается выяснить формат данной даты, и она обычно делает хорошую работу Если вы можете гарантировать даты всегда будет находиться в заданном формате. то вы можете использовать ParseExact() " – paulsm4

ответ

5

DateTime.Parse использует standard date and time format вашего CurrentCulture. Поскольку ваша строка имеет ( и ), вам нужно использовать custom date and time parsing с TryParseExact методом (или ParseExact) с английского на основе культуры (например: InvariantCulture) нравится;

string s = "11 Jun 2015 (12:10)"; 
DateTime dt; 
if(DateTime.TryParseExact(s, "dd MMM yyyy '('HH:mm')'", CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out dt)) 
{ 
    // 11.06.2015 12:10:00 
} 

Если строка имеет ' в начале и в конце концов, вы можете избежать их формат "\\'dd MMM yyyy '('HH:mm')'\\'" как;

string s = "'11 Jun 2015 (12:10)'"; 
DateTime dt; 
if(DateTime.TryParseExact(s, "\\'dd MMM yyyy '('HH:mm')'\\'", CultureInfo.InvariantCulture, 
          DateTimeStyles.None, out dt)) 
{ 
    // 11.06.2015 12:10:00 
} 
Смежные вопросы