Разделение строки для преобразования в datetime вызывает ошибку

#c# #datetime #type-conversion

#c# #datetime #преобразование типа

Вопрос:

Я пытаюсь преобразовать персидскую дату в стандартное datetime.Персидская дата имеет формат, подобный этому : 1392/01/23 .

Моя функция :

  public DateTime ConvertPeersianToEnglish(string persianDate)
        {
            string[] formats = { "yyyy/MMMM/dd" };
            DateTime d1 = DateTime.ParseExact(persianDate, formats,
                                              CultureInfo.CurrentCulture, DateTimeStyles.None);

            return d1;
        }
 

Поэтому, когда я вызываю эту функцию и передаю ей свою персидскую дату, я получаю сообщение об ошибке :

 String was not recognized as a valid DateTime.
 

Почему ?

С наилучшими пожеланиями

Комментарии:

1. это похоже на этот год / месяц / день

Ответ №1:

Используйте MM вместо MMMM :

 string[] formats = { "yyyy/MM/dd" };
 

MM является 01 ли номер месяца 12

MMMM является полным именем месяца january december (строки зависят от культуры).

Проверьте MSDN: настраиваемые строки формата даты и времени

Комментарии:

1. Итак, почему в стандартное время мы должны использовать MMMM?

2. @EA ну, все зависит от ваших потребностей, это просто другой способ представления вашей даты. Хотя я никогда этого не слышал we should use MMMM in standard time , откуда вы это взяли?

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