it-swarm.com.de

Wie formatiere ich DateTime-Spalten in DataGridView?

Ich verwende ein DataGridView mit Objektdatenbindung, um Informationen über die Protokollierung von Entitäten in einem System anzuzeigen, die über SOAP von einem Remote-Service abgerufen werden .. Eine der Spalten heißt "Letzte Aktion" und bedeutet das letzte Mal Die Entität hat eine Nachricht protokolliert. Es ist ein System.DateTime-Wert. Wenn ich die Antwort SOAP lese (Beispiel unten), enthält der Zeitstempel offensichtlich alle Informationen bis zu zweiten Brüchen.

<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>

Wenn ich es auf dem Tisch zeige, kann ich stattdessen bis zu den Minuten lesen http://i.stack.imgur.com/dLYBz.pngIch benutze den folgenden Code, um die Datenbindung durchzuführen, wenn ich auf die Schaltfläche "Aktualisieren" klicke

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; }));
}

Ich möchte wissen, wie man die Spaltenformatierung von datengebundenen Werten steuert. Ich denke, dass das Format TT/MM/JJJJ hh: mm von den Systemeinstellungen stammt. Wie programmiere ich die Formatierungseinstellungen außer Kraft?

Danke im Voraus

Vollständiger Lösungscode auf Subversion (FFDAGui-Programm) für das Open-Source-Projekt Logbus-ng.

Wenn es sich um ein Windows-Formular von Datagrid handelt, können Sie den folgenden Code verwenden, um das Datum für eine Spalte zu formatieren

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

BEARBEITEN:

Wenn Sie die datetime im AM/PM-Format benötigen, können Sie auch den folgenden Code verwenden

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

Verwenden Sie die Eigenschaft Column.DefaultCellStyle.Format oder setzen Sie sie im Designer

38
Denis Palnitsky

Sie können das gewünschte Format einstellen:

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

Sie können das Format in ASPX festlegen. Fügen Sie einfach die Eigenschaft "DateFormatString" in Ihr BoundField hinzu.

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

Veröffentlicht von Microsoft in Standardformatzeichenfolgen für Datum und Uhrzeit :

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

Das Datum sollte entsprechend den Standorteinstellungen der Person formatiert werden.

Dies ist Teil der größeren Sammlung von Microsoft Formatierungstypen in .NET .

1
jp2code

Ich habe diesen Code verwendet Hope es könnte helfen

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