Удалить время из моей строки c#

#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 , сохраните и извлеките его как a datetime .

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");