Подтвердить что ты не робот

Как форматировать столбцы DateTime в DataGridView?

Я использую 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; }));
}

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

Заранее благодарю

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

4b9b3361

Ответ 1

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

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

EDIT:

Кроме того, если вам требуется дата-время в формате AM/PM, вы можете использовать приведенный ниже код

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

Ответ 3

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

dataGridViewCellStyle.Format = "dd/MM/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn

Ответ 4

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

DataFormatString="{0:dd/MM/yyyy hh:mm:ss}"

Ответ 5

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

dataGridView2.Rows[n].Cells[3].Value = item[2].ToString();
dataGridView2.Rows[n].Cells[3].Value = Convert.ToDateTime(item[2].ToString()).ToString("d");