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

141

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

20080916 11:02

как в

ггггмм чч: сс

Как я могу заставить функцию datetime.parse уловить это? Т.е. разобрать без ошибок? Ура

аноним0use
источник

Ответы:

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

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

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

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

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

Блэр Конрад
источник
11
Не забудьте DateTime.TryParseExact ()
Джоэл Кохорн
Также: стандартный Xml имеет собственный очень специфический формат DateTime, и инструменты .Net Xml должны уметь его читать.
Джоэл Кохорн
В этом случае он работает нормально с последним параметром как нулевым, но для любого, кто найдет этот CultureInfo.InvariantCulture, в противном случае вы можете получить проблемы, если ваше datetime будет чем-то вроде «1823/01/01».
Todilo
@JoelCoehoorn standard XML specific DateTime format?
Kiquenet
10

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

DateTime dt = DateTime.MinValue;

DateTime.TryParseExact("20071122", "yyyyMMdd", null,System.Globalization.DateTimeStyles.None, out dt);
Берт
источник