конвертировать строку в разные форматы даты и времени - PullRequest
0 голосов
/ 30 сентября 2019

Мой ввод - это надоедливый свободный текст, в котором мне нужно извлечь дату. Эта дата может присутствовать в любом из форматов с аномалиями.

например. Это дата 9.9.12
Это дата 9912
Это дата 0992012
Любой возможный формат.

dMy ddMMyy ddMMyyyy Mdyy и т. Д.

IЯ могу проверить, если текст в формате даты для ddMMy *, но не любой другой. Я искал эту ссылку https://www.c -sharpcorner.com / blogs / date-and-time-format-in-c-sharp-Programming1 , чтобы узнать, какие другие форматы могут быть возможны, но я не получил подсказок.

Правильно ли это написать, как в следующем методе для формата даты, скажем - 9912?

Date.ParseExact(test.ToString,"dMy", Globalization.CultureInfo.InvariantCulture)

Если да, система заполняет мне следующую ошибку:

System.FormatException: строка не была распознана как допустимый DateTime.

Может ли кто-нибудь поделиться надежным подходом к решению таких проблем?

1 Ответ

0 голосов
/ 30 сентября 2019

Нет единого способа выполнить то, что вы пытаетесь сделать. В частности, поскольку намерение настолько широкое, становится трудно определить, что на самом деле означает пользователь (например, как вы различаете месяц и день).

В зависимости от того, как вы реализуете свое приложение, вам необходимореализовать проверку ввода.

Для консольного приложения я могу представить, что вы используете что-то вроде:

if (DateTime.TryParse(line, out value))
{
   // Parse-able date.
}
else
{
   // Non-parseable date.
}

Если вы создаете приложение WPF, вы можете использовать проверка привязки . Если вы создаете приложение ASP.NET MVC, вы также можете реализовать проверку модели . Ваш пробег может варьироваться - вы должны обязательно ограничить то, что ваши пользователи могут кормить приложение.

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