我正在使用带对象数据绑定的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来自我的系统设置。 如何以编程方式覆盖格式设置?
提前谢谢
Logbus-ng开源项目Subversion(FFDAGui程序)的完整解决方案代码。
答案 0 :(得分:38)
答案 1 :(得分:29)
您可以设置所需的格式:
dataGridViewCellStyle.Format = "dd/MM/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn
答案 2 :(得分:24)
如果是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";
答案 3 :(得分:1)
您可以在aspx中设置格式,只需在BoundField中添加属性“DateFormatString”。
DataFormatString="{0:dd/MM/yyyy hh:mm:ss}"
答案 4 :(得分:1)
由Microsoft在Standard Date and Time Format Strings中发布:
dataGrid.Columns[2].DefaultCellStyle.Format = "d"; // Short date
那应该根据该人的位置设置格式化日期。
这是Microsoft Formatting Types in .NET的较大集合中的一部分。
答案 5 :(得分:0)
我使用这些代码希望它可以提供帮助
dataGridView2.Rows[n].Cells[3].Value = item[2].ToString();
dataGridView2.Rows[n].Cells[3].Value = Convert.ToDateTime(item[2].ToString()).ToString("d");
答案 6 :(得分:0)
string stringtodate = ((DateTime)row.Cells[4].Value).ToString("MM-dd-yyyy");
textBox9.Text = stringtodate;