#c# #asp.net #date #datetime
#c# #asp.net #Дата #дата и время
Вопрос:
Я создаю веб-приложение в asp.net в котором я извлекаю время из своей базы данных через строку и печатаю строку формат даты в моей базе 2016-10-15 00:00:00.000
данных, и когда я печатаю строку, формат даты отображается как 10-Oct-16 12:00:00 AM
, но я просто хочу распечатать 10-Oct-16
, я попробовал
string reformattedDate = DateTime.ParseExact(txtdate, "dd-MM-yyyy", null)
.ToString("MMM d, yyyy");
Это, но я показываю:
Строка не была распознана как допустимая дата-время
Кто-нибудь может предложить мне лучший способ?
Комментарии:
1. Почему вы извлекаете свою дату в виде строки? Что плохого в использовании фактического правильного типа данных?
2. какой тип
txtdate
?3. в моей таблице дата отображается в виде строки
4. @IbrahimShaikh Это глупо. Если это a
datetime
, сохраните и извлеките его как adatetime
.5. Итак, измените свою таблицу? Хранить даты в БД в виде строки — плохая идея. Это в конечном итоге не вызовет у вас никаких проблем
Ответ №1:
Ваша дата yyyy-MM-dd hh:mm:ss.fff
, формат, который вы ввели, только dd-MM-yyyy
.
Это вызывает ошибку. Измените это на:
string reformattedDate = DateTime.ParseExact("2016-10-15 00:00:00.000", "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.InvariantCulture)
.ToShortDateString();
РЕДАКТИРОВАТЬ: вы также можете использовать ToString("dd-MMM-yy")
вместо ToShortDateString()
, чтобы получить желаемый результат.
например:
string reformattedDate = DateTime.ParseExact("2016-10-15 00:00:00.000", "yyyy-MM-dd hh:mm:ss.fff", CultureInfo.InvariantCulture)
.ToString("dd-MMM-yy");