Строка в Datetime C # - PullRequest
       2

Строка в Datetime C #

0 голосов
/ 15 декабря 2011

String = "880814" теперь я хочу, чтобы эта строка отображалась как 88/08/14 любым из способов

  • либо путем анализа его в Datetime
  • , либо просто вставив "/" в ч / бКак ????

Ответы [ 2 ]

4 голосов
/ 15 декабря 2011

Я предполагаю, что это следует интерпретировать как день месяца, состоящий из 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" выполнение этого с помощью манипуляции со строками существенно меняется, но при разборе и переформатировании это просто очень незначительное изменение, которое было бы очевидно при рассмотрении кода.

2 голосов
/ 15 декабря 2011

Самое простое, что нужно сделать, это вставить / в строку, если вы просто хотите вывести строку с ними:

"880814".Insert(4, "/").Insert(2, "/")

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...