Member 12652110 Ответов: 3

Почему мой datetime. parseexact имеет ошибку?


значение для ava равно {12/12/2015 12:00: 00 AM}

Что я уже пробовал:

ateTime ava = конвертировать.Объект todatetime(строк.Ячейки[3]. Текст);
DateTime to = конвертировать.Объект todatetime(строк.Ячейки[4]. Текст);
Ответ.Перенаправление("UpdateLoanType.аспн?тип=" + тип+"&амп;срок="+термин+"&амп;курс="+ставка+"&амп;Авы="+ "" Ава+"&амп;к="+к);


Nowed датавремя = Датавремя.ParseExact(Запрос.QueryString ["ava"]," dd/MM/yyyy", CultureInfo.Языка и региона существует);

3 Ответов

Рейтинг:
1

OriginalGriff

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

12/12/2015 12:00:00 AM
Не соответствующий:
dd/MM/yyyy
Это действительно совпадает:
dd/MM/yyyy hh:mm:ss tt


Рейтинг:
0

Karthik_Mahalingam

Следуйте приведенным выше 2 решениям или просто измените формат, передавая его в строку запроса..

string ava = Convert.ToDateTime(theRow.Cells[3].Text).ToString("dd/MM/yyyy");
            string to = Convert.ToDateTime(theRow.Cells[4].Text).ToString("dd/MM/yyyy");  


и это должно работать на целевой странице:
DateTime nowed = DateTime.ParseExact(Request.QueryString["ava"], "dd/MM/yyyy", CultureInfo.InvariantCulture);


Рейтинг:
0

George Jonsson

Ну ваша входная строка такова

12/12/2015 12:00:00 AM

и ваше выражение синтаксический анализ
dd/MM/yyyy

таким образом, ваше выражение не соответствует входной строке.

Попробуйте вместо этого это выражение:
dd/MM/yyyy hh:mm:ss tt


[ОБНОВЛЕНИЕ]
DateTime не имеет определенного формата, это своего рода заполнитель для даты и времени.
Только когда вы решите представить дату пользователю, например, в текстовом поле, вы придадите ей формат.
Для этого можно использовать следующие методы:
- ToLongDateString()
- ToLongTimeString()
- ToShortDateString()
- Тошорттиместринг()
- Метод toString()

ToString () даст вам наибольший контроль над форматом, и вы можете избежать культурных вариаций даты на разных компьютерах, если это не требуется.
Видеть Пользовательские строки формата даты и времени[^]

Для вашего желаемого формата это будет
DateTime dt = DateTime.Now;
string s = dt.ToString("dd/MM/yyyy");

Поэтому, пожалуйста, забудьте о хранении даты в определенном формате.
Единственный способ сделать это-сохранить его в виде строки, и это было бы не самой умной вещью.


Member 12652110

но я пытаюсь преобразовать его в ДД/ММ/гггг

George Jonsson

Смотрите мой обновленный ответ.