it-swarm.com.ru

Как отформатировать столбцы 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; }));
}

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

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

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

32
usr-local-ΕΨΗΕΛΩΝ

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

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";
22
Sarath Avanavu

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

37
Denis Palnitsky

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

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

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

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

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

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

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

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

1
jp2code

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

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