Как отформатировать столбцы DateTime в DataGridView? - PullRequest
36 голосов
/ 27 октября 2010

Я использую DataGridView с привязкой данных объекта для отображения информации о регистрации объектов в системе, полученной через SOAP из удаленного сервиса.Один из столбцов называется «Последнее действие» и означает последний раз, когда объект зарегистрировал сообщение.Это значение System.DateTime.Когда я читаю ответ SOAP (пример ниже), его временная метка, очевидно, содержит всю информацию, с точностью до секунды.

<LoggingEntity>
<host>marty86ce</host>
<process>10148</process>
<logger>http_core</logger>
<appName>httpd</appName>
<ffda>true</ffda>
<lastAction>2010-10-27T12:00:19.5117509Z</lastAction>
<lastHeartbeat>0001-01-01T00:00:00</lastHeartbeat>
<channelId>em_9BA2A2B4D0B6E66</channelId>
<ffdaChannelId>em_E7C8D1D4DE8EEB9</ffdaChannelId>
</LoggingEntity>

Когда я отображаю ее на столе, я вместо этого могу читать до минут http://i.stack.imgur.com/dLYBz.png Я использую следующий код для привязки данных при нажатии кнопки обновления

public void RefreshEntities()
{
    IEntityManagement management = EntityPlugin.GetProxy();
    LoggingEntity[] result = management.FindLoggingEntities(new TemplateQuery { ffdaSpecified = true, ffda = true }); //Remote invocation

    Invoke(new MethodInvoker(delegate { gridEntities.DataSource = result; })); //THIS does the data binding from the array

    Invoke(new MethodInvoker(delegate { btnRefresh.Enabled = true; }));
}

Я хотел бы знать, как управлять форматированием столбцов значений привязки данных.Я думаю, что формат дд / мм / гггг чч: мм исходит из настроек моей системы. Как программно переопределить настройки форматирования?

Заранее спасибо

Полный код решения на Subversion (программа FFDAGui) для открытия журналаисходный проект.

Ответы [ 6 ]

38 голосов
/ 27 октября 2010

Используйте Column.DefaultCellStyle.Format или установите его в конструкторе

29 голосов
/ 27 октября 2010

Вы можете установить желаемый формат:

dataGridViewCellStyle.Format = "dd/MM/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn
25 голосов
/ 02 августа 2016

Если это окно формы данных, вы можете использовать приведенный ниже код для форматирования даты и времени для столбца

dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm:ss";

РЕДАКТИРОВАТЬ:

Помимо этого, если вам нужна дата / время в формате AM / PM, вы можете использовать следующий код

dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy hh:mm:ss tt";
1 голос
/ 22 августа 2018

Опубликовано Microsoft в Стандартные строки формата даты и времени :

dataGrid.Columns[2].DefaultCellStyle.Format = "d"; // Short date

Это должно форматировать дату в соответствии с настройками местоположения человека.

Это частьиз большой коллекции Microsoft типов форматирования в .NET .

1 голос
/ 18 марта 2015

Вы можете установить формат в aspx, просто добавьте свойство «DateFormatString» в вашем BoundField.

DataFormatString="{0:dd/MM/yyyy hh:mm:ss}"
0 голосов
/ 05 июня 2016

Я использовал этот код Надеюсь, он может помочь

dataGridView2.Rows[n].Cells[3].Value = item[2].ToString();
dataGridView2.Rows[n].Cells[3].Value = Convert.ToDateTime(item[2].ToString()).ToString("d");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...