У меня есть строка следующего формата "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 для разделенных чисел.