Parse Simple DateTime

DateTime dt = DateTime.ParseExact("1122010", "Mddyyyy", System.Globalization.CultureInfo.CurrentCulture);

Возникло это исключение: String не был распознан как допустимый DateTime.

Я уверен, что это отсутствие ведущего 0 в месяце. Какая строка правильного формата?

9
задан Dan Esparza 23 August 2010 в 20:37
поделиться

3 ответа

Я предлагаю использовать формат "MMddyyyy" и убедитесь, что ваш входной параметр содержит не менее 8 символов. Пример:

DateTime dt = DateTime.ParseExact("1122010".PadLeft(8, '0'), "MMddyyyy", System.Globalization.CultureInfo.CurrentCulture);

Если вы используете источник данных, в котором отсутствует начальный 0 для месяца, он будет добавлен там, где это необходимо.

12
ответ дан 4 December 2019 в 12:15
поделиться

Проблема в том, что вы не предоставляя ParseExact достаточно информации для работы.

«M» означает месяц, состоящий из 1 или 2 цифр. Но ваша строка начинается с «1122». Это 12 января или 22 ноября?

Единственное решение, как показывает Энтони, - добавить 0, когда это необходимо.

4
ответ дан 4 December 2019 в 12:15
поделиться

Одиночная строка формата «M» неприемлема, поскольку не все месяцы могут быть однозначно представлены одной цифрой или символом. Как было предложено ранее, вам нужно будет использовать «MMddyyyy» и при необходимости дополнить левую строку.

1
ответ дан 4 December 2019 в 12:15
поделиться
Другие вопросы по тегам:

Похожие вопросы: