У меня есть строка следующего формата "ORDER20100322194007", где 20100322 - дата, а 194007 - время. Как разобрать строку и получить содержащийся объект DateTime?
Разбор строки, содержащей дату и время в пользовательском формате
Ответ 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 для разделенных чисел.