Преобразование 8-значного числа в DateTime Type

Я хочу преобразовать 8-значное значение в объект DateTime. Как я могу это сделать? Например, если пользователь вводит 08082010, тогда он должен преобразовать его в 08/08/2010, используя С#.

Ответ 1

CultureInfo provider = CultureInfo.InvariantCulture;
string dateString = "08082010";
string format = "MMddyyyy";
DateTime result = DateTime.ParseExact(dateString, format, provider);

Это будет работать.

Ответ 2

Используйте DateTime.ParseExact() с спецификатором формата "ddMMyyyy" или "MMddyyyy".

Ответ 3

Я просто пытался сделать то же самое, и мне пришлось бы согласиться с подходом Игнасио. Ответ, который был принят, работает, но метод ParseExact генерирует исключение в случае, если строка даты недействительна, а метод TryParseExact возвращает false. Пример:

using System.Globalization;
// ...
string dateString = "12212010";
string format = "MMddyyyy";
DateTime dateStarted;
if (!DateTime.TryParseExact(dateString, format, null, DateTimeStyles.None, out dateStarted))
    dateStarted = DateTime.Now;