Добрый день, есть List, при попытки вывести все его элементы листа после дат еще добавляется время: "01.03.2017 0:00:00". Вопрос: можно ли изменить формат хранения дат в List на "01.03.2017" (без времени) или это возможно только при выводе элементов с помощью MessageBox.Show(item.ToShortDateString()); ?
Тип 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
, с заранее конвертированными значениями. Как видим, результат в обоих идентичный.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Нужно представление нескольких элементов в виде значковИспользую ListView:
Мобильное приложение не добавляет записи в MySQL, хотя никаких ошибок Android Studio не выдаетНе пойму в чем ошибка
Это ошибка появляется, когда я пытаюсь отослать уведомление: