datetime.parse и заставить его работать с определенным форматом

У меня есть дата и время, возвращающееся из файла XML в формате:

20080916 11:02

as in

ггггмм чч:сс

Как я могу получить функцию datetime.parse, чтобы понять это? Т.е. разобрать его без ошибок? Ваше здоровье


person anonym0use    schedule 04.12.2008    source источник


Ответы (2)


DateTime.ParseExact(input,"yyyyMMdd HH:mm",null);

предполагая, что вы хотели сказать, что минуты следовали за часами, а не за секундами - ваш пример немного сбивает с толку.

В документации ParseExact подробно описаны другие перегрузки. , если вы хотите, чтобы синтаксический анализ автоматически преобразовывался в универсальное время или что-то в этом роде.

Как упоминает @Джоэл Коегоорн, также можно использовать TryParseExact, который вернет логическое значение, указывающее на успех или неудачу операции. m все еще на .Net 1.1, поэтому я часто забываю об этом.

Если вам нужно проанализировать другие форматы, вы можете проверить Стандартные строки формата DateTime.

person Blair Conrad    schedule 04.12.2008
comment
Не забудьте DateTime.TryParseExact() - person Joel Coehoorn; 04.12.2008
comment
Кроме того: стандартный Xml имеет свой собственный очень специфический формат DateTime, и инструменты .Net Xml должны иметь возможность его читать. - person Joel Coehoorn; 04.12.2008
comment
В этом случае он работает нормально с последним параметром как нулевым, но для любого, кто находит этот CultureInfo.InvariantCulture, в противном случае вы можете получить проблемы, если ваша дата-время что-то вроде 1823/01/01. - person Todilo; 03.09.2013
comment
@ДжоэлКоегоорн standard XML specific DateTime format ? - person Kiquenet; 27.07.2018

Спасибо за подсказку, я использовал это, чтобы разобрать дату «20071122», мне нужно было добавить стили даты и времени, я не использовал ни одного, и это сработало:

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
person bert    schedule 22.05.2014