Строка в дату и время - PullRequest
1 голос
/ 10 мая 2010

У меня есть строка 12012009, введенная пользователем в приложении ASP.NET MVC. Я хотел преобразовать это в DateTime.

Но если я сделаю DateTime.TryParse("12012009", out outDateTime);, он вернет false.

Итак, я попытался преобразовать 12012009 в 01.12.2009, а затем сделать DateTime.TryParse("12/01/2009", out outDateTime);, который будет работать

Но я не нашел прямого метода для преобразования строки 12012009 в строку "12/01/2009". Есть идеи?

Ответы [ 4 ]

9 голосов
/ 10 мая 2010

Во-первых, вам необходимо решить, будет ли ваш ввод в формате день-месяц-год или месяц-день-год .

Затем вы можете использовать DateTime.TryParseExact и явно указать формат входной строки:

DateTime.TryParseExact("12012009",
                       "ddMMyyyy",
                       CultureInfo.InvariantCulture,
                       DateTimeStyles.None,
                       out convertedDate)

См. Также: Пользовательские строки формата даты и времени

4 голосов
/ 10 мая 2010

Вы можете использовать DateTime.TryParseExact и передать точную строку формата:

DateTime dateValue = DateTime.Now;
if (DateTime.TryParseExact("12012009", "ddMMyyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateValue)))
{
   // Date now in dateValue
}
0 голосов
/ 10 мая 2010
DateTime yourDate = 
    DateTime.ParseExact(yourString, "ddMMyyyy", Culture.InvariantCulture);
0 голосов
/ 10 мая 2010

Если вы хотите использовать этот формат, вам, скорее всего, потребуется указать формат для синтаксического анализатора.Проверьте документацию System.IFormatProvider, а также документацию System.DateTime для методов, которые принимают IFormatProvider.

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