Подтвердить что ты не робот

Разбор строки, содержащей дату и время в пользовательском формате

У меня есть строка следующего формата "ORDER20100322194007", где 20100322 - дата, а 194007 - время. Как разобрать строку и получить содержащийся объект DateTime?

4b9b3361

Ответ 1

Будет ли он всегда начинаться с ORDER?

string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None,
                           out dt))
{
    // dt is the parsed value
} 
else 
{
    // Invalid string
}

Если недопустимая строка должна вызвать исключение, используйте DateTime.ParseExact вместо DateTime.TryParseExact

Если это не всегда начинается с "ORDER", тогда сделайте все, что вам нужно, чтобы получить только дату и время, и удалите "ORDER" из шаблона формата выше.

Ответ 2

Вы можете использовать DateTime.ParseExact метод, чтобы указать формат, который должен использоваться при разборе.

Ответ 3

Если у вас нет фиксированной структуры вашей строки, то порядок не всегда будет там, тогда вы можете использовать регулярное выражение для разделения чисел и символов, а затем использовать функцию преобразования в datetime для разделенных чисел.