Преобразовать строковую дату в системную дату и время в C # - PullRequest
0 голосов
/ 27 сентября 2011

Я хочу преобразовать строковую дату в системную дату и время в C #.Пользователь вводит дату через текстовое поле, и она должна быть преобразована в дату и время.Я использовал следующий код, но он не работает ...

DateTime ToDate = Convert.ToDateTime(txtToDate.Text);
DateTime FromDate = DateTime.Parse(txtFromDate.Text);

Это показывает следующее исключение: "Строка не была распознана как допустимый DateTime."

Как это сделать ...???

Ответы [ 6 ]

2 голосов
/ 27 сентября 2011

Вы можете использовать DateTime.ParseExact().Таким образом, вы можете указать формат входной строки, чтобы она была правильно проанализирована, например:

dateString = "Sun 15 Jun 2008";
format = "ddd dd MMM yyyy";
try 
{
  DateTime result = DateTime.ParseExact(dateString, format, CultureInfo.CurrentCulture);
}
catch (FormatException) 
{

}
2 голосов
/ 27 сентября 2011

независимо от того, что пользователь вводит в ваше текстовое поле, оно должно быть в правильном формате даты, в противном случае напишите свою собственную функцию, чтобы сделать это в правильном формате. затем преобразуйте его в формат DateTime.

для другого формата вы можете проверить это: http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx

для получения дополнительной помощи вы можете проверить аналогичный вопрос на этом сайте: Проверка DateTime в C #

1 голос
/ 27 сентября 2011

Конечно, вы можете анализировать вводимые пользователем данные и полагаться на то, что пользователи всегда вводят правильную дату. Но я бы порекомендовал использовать определенный элемент управления для ввода даты, такой как календарь элемента управления ajax control toolkit .

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

1 голос
/ 27 сентября 2011

Попросите пользователя ввести его дату и время в определенном формате в текстовое поле, т. Е. Либо "ddMMyyyyhhmmss" или "dd/MM/yyyy hh:mm:ss tt" или "dd-MM-yyyy hh:mm:ss tt", либо в некоторых других форматах, и используйте приведенный ниже код для преобразования в действительное время / дату.

 DateTime ToDate = DateTime.ParseExact(txtToDate.Text, <User DateTime format as String>,
 System.Globalization.CultureInfo.CurrentCulture, System.Globalization.DateTimeStyles.None)

Вместо этого, если приведенная выше кодировка усложняет задачу, вы можете попробовать DateTime.TryParse () также

0 голосов
/ 26 декабря 2012

DateTime dt = Convert.ToDateTime (date); здесь дата в строке.

0 голосов
/ 27 сентября 2011

Прежде всего вам необходимо проверить значение текстового поля, чтобы оно было действительным или нет, вы можете использовать для этого элемент управления MaskititExtender ajax и ограничить использование, введите только формат даты.

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