Я предполагаю, что это следует интерпретировать как день месяца, состоящий из 2 цифр ...
Я бы посоветовал вам разобрать его как DateTime
, а затем преобразовать в пользовательский формат. Например, используя DateTime.TryParseExact
:
DateTime date;
// null means "current culture" - may or may not be appropriate
// Ditto the AssumeLocal value...
if (DateTime.TryParseExact(text, "yyMMdd", null, DateTimeStyles.AssumeLocal,
out date))
{
// Note this will use the date separator of the current culture
string formatted = date.ToString("yy/MM/dd");
// Use formatted
}
else
{
// Couldn't be parsed - handle appropriately.
}
Я не просто вставит косую черту вручную, иначе вы не сможете отлавливать недействительные данные как можно раньше, анализируя / переформатируя. Приведенный выше код также лучше подходит для ситуаций, когда или ваш формат ввода или ваш формат вывода изменяется - например, если вы хотите изменить формат "dd-MM-yyyy" выполнение этого с помощью манипуляции со строками существенно меняется, но при разборе и переформатировании это просто очень незначительное изменение, которое было бы очевидно при рассмотрении кода.