Comment formater les colonnes DateTime dans DataGridView?

j'utilise un DataGridView avec liaison de données objet pour afficher des informations sur les entités de journalisation dans un système, récupérées via SOAP à partir d'un service distant. L'une des colonnes est appelée "Dernière action" et signifie la dernière fois que l'entité a enregistré un message. C'est un System.DateTime valeur. Lorsque je lis la réponse SOAP (exemple ci-dessous), il timestamp contient évidemment toutes les informations, jusqu'à la seconde fraction.

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

quand je l'affiche sur la table, je peux lire jusqu'à la minute http://i.stack.imgur.com/dLYBz.png J'utilise le code suivant pour faire la liaison de données lorsque j'appuie sur le bouton actualiser

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

je voudrais savoir comment contrôler le formatage des colonnes de valeurs liées aux données. Je pense que le format JJ/MM/aaaa hh:mm vient des paramètres de mon système. comment modifier les paramètres de formatage par programmation?

Merci d'avance

code de la solution complète sur Subversion (programme FFDAGui) pour le Logbus-ng projet open source.

30
demandé sur abatishchev 2010-10-27 16:26:05

6 réponses

si c'est un Datagrid windows form, vous pouvez utiliser le code ci-dessous pour formater le datetime pour une colonne

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

EDIT :

en dehors de cela, si vous avez besoin du datetime au format AM/PM, vous pouvez utiliser le code ci-dessous

dataGrid.Columns[2].DefaultCellStyle.Format = "MM/dd/yyyy hh:mm:ss tt";
21
répondu Sarath Avanavu 2016-09-05 09:36:15

Utiliser Colonne.DefaultCellStyle.Format propriété ou valeur designer

37
répondu Denis Palnitsky 2010-10-27 12:32:17

Vous pouvez définir le format que vous voulez:

dataGridViewCellStyle.Format = "dd/MM/yyyy";
this.date.DefaultCellStyle = dataGridViewCellStyle;
// date being a System.Windows.Forms.DataGridViewTextBoxColumn
28
répondu Jla 2010-10-27 12:33:34

Vous pouvez définir le format dans aspx, il suffit d'ajouter la propriété "DateFormatString" dans votre champ lié.

DataFormatString="{0:dd/MM/yyyy hh:mm:ss}"
0
répondu user2953513 2015-03-18 14:45:31

j'ai utilisé ces code Espère qu'elle pourra aider

dataGridView2.Rows[n].Cells[3].Value = item[2].ToString();
dataGridView2.Rows[n].Cells[3].Value = Convert.ToDateTime(item[2].ToString()).ToString("d");
0
répondu Retchel Obcianal 2016-06-05 12:54:38

Publié par Microsoft en chaînes de Format Date et heure Standard:

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

qui devrait formater la date en fonction des paramètres de localisation de la personne.

ceci fait partie de la plus grande collection de formatage des Types dans .NET.

0
répondu jp2code 2018-08-22 15:12:03