Как форматировать столбцы 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>
Когда я показываю его на столе, я вместо этого могу читать до минут
Я использую следующий код для привязки данных, когда я нажимаю кнопку обновления
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.
Ответы
Ответ 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";
Ответ 2
Используйте свойство Column.DefaultCellStyle.Format или задайте его в дизайнере.
Ответ 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");
Ответ 6
Опубликовано Microsoft в стандартных форматах даты и времени:
dataGrid.Columns[2].DefaultCellStyle.Format = "d"; // Short date
Это должно форматировать дату в соответствии с настройками местоположения человека.
Это часть более крупной коллекции Microsoft Formatting Types в.NET.