Строка не была распознана как допустимый DateTime "формат дд / мм / гггг" - PullRequest
152 голосов
/ 03 февраля 2010

Я пытаюсь преобразовать значение в формате строки в тип даты с форматом dd/MM/yyyy.

this.Text="22/11/2009";

DateTime date = DateTime.Parse(this.Text);

В чем проблема?У него есть второе переопределение, которое запрашивает IFormatProvider.Что это? Неужели Мне тоже нужно это пройти?Если да, как использовать его в этом случае?

Редактировать

В чем различия между Parse и ParseExact?

Редактировать 2

Оба ответа Слакса и Сэма работают на меня, в настоящее время пользователь вводит данные, но я буду уверен, что они действительны при использовании maskTextbox.

Какой ответ лучше, учитывая все аспекты, такие как безопасность типов, производительность или что-то, что вам нравится

Ответы [ 14 ]

0 голосов
/ 25 апреля 2018

Простой способ без внешних ссылок:

public string FormatDate(string date, string format)
{
   try {
      return DateTime.Parse(date).ToString(format);
   }
   catch (FormatException) 
   {
      return string.Empty;
   }
}
0 голосов
/ 19 сентября 2016

работал для меня ниже код:

DateTime date = DateTime.Parse(this.Text, CultureInfo.CreateSpecificCulture("fr-FR"));

Пространство имен

using System.Globalization;
0 голосов
/ 23 июля 2015

Изменить вручную:

string s = date.Substring(3, 2) +"/" + date.Substring(0, 2) + "/" + date.Substring(6, 4);

С 22.11.2015 оно будет конвертировано в 22.11.2015

0 голосов
/ 29 июня 2010

Вы также можете использовать

this.Text = "22112009";
DateTime newDateTime = new DateTime(Convert.ToInt32(this.Text.Substring(4, 4)), // Year
                                    Convert.ToInt32(this.Text.Substring(2,2)), // Month
                                    Convert.ToInt32(this.Text.Substring(0,2)));// Day
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...