Как изменить формат дат в List<DateTime>?

293
25 мая 2017, 07:20

Добрый день, есть List, при попытки вывести все его элементы листа после дат еще добавляется время: "01.03.2017 0:00:00". Вопрос: можно ли изменить формат хранения дат в List на "01.03.2017" (без времени) или это возможно только при выводе элементов с помощью MessageBox.Show(item.ToShortDateString()); ?

Answer 1

Тип DateTime не хранит формат своего отображения. Он просто хранит дату в виде целого числа типа Int64.

Формат отображения задаётся при выводе данных пользователю. Многие визуальные компоненты имеют встроенные возможности формата вывода показываемых данных.

Например, имеется список:

var list = new List<DateTime>();

Если привязать его к ListBox

listBox.DataSource = list;

дата/время будут выводиться в формате по умолчанию, то есть просто вызовом метода ToString.

У листбокса можно задать формат вывода:

listBox.FormattingEnabled = true;
listBox.FormatString = "dd.MM.yyyy";

После чего будет показываться только дата, без времени. Похожим образом задаётся формат, например, в DataGridView: DefaultCellStyle.Format.

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

var list2 = list.Select(dt => dt.ToShortDateString()).ToList();

Теперь, при привязке к ListBox с форматом по умолчанию, данные будут в желаемом виде, ведь это просто строки.

На представленном скриншоте три ListBox. В левом DateTime отображается в формате по умолчанию, с временем. В среднем использована установка формата, к правому привязан список типа string, с заранее конвертированными значениями. Как видим, результат в обоих идентичный.

READ ALSO
В чём проблема ListView?

В чём проблема ListView?

Нужно представление нескольких элементов в виде значковИспользую ListView:

388
android не добавляет записи в mysql

android не добавляет записи в mysql

Мобильное приложение не добавляет записи в MySQL, хотя никаких ошибок Android Studio не выдаетНе пойму в чем ошибка

269
Получаю ошибку в Facebook Graph API Explorer&hellip;v2.9

Получаю ошибку в Facebook Graph API Explorer…v2.9

Это ошибка появляется, когда я пытаюсь отослать уведомление:

266