web-dev-qa-db-fra.com

Comment formater les colonnes DateTime dans DataGridView?

J'utilise DataGridView avec une liaison de données d'objet pour afficher des informations sur la journalisation d'entités dans un système, extraites via SOAP à partir d'un service distant . L'une des colonnes s'appelle "Dernière action" et signifie la dernière fois. l'entité a enregistré un message. C'est une valeur System.DateTime. Lorsque je lis la réponse SOAP (exemple ci-dessous), l'horodatage 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>

Lorsque je l’affiche sur la table, je peux au contraire lire jusqu’au compte rendu http://i.stack.imgur.com/dLYBz.pngJ'utilise le code suivant pour effectuer la liaison de données lorsque j'appuie sur le bouton d'actualisation

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

J'aimerais 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 provient des paramètres de mon système. Comment remplacer les paramètres de formatage par programme?

Merci d'avance

Code de solution complet sur Subversion (programme FFDAGui) pour le projet open source Logbus-ng.

32

S'il s'agit d'une fenêtre de type Datagrid, vous pouvez utiliser le code ci-dessous pour formater la date et l'heure d'une colonne.

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

MODIFIER :

En dehors de cela, si vous avez besoin de la date/heure au format AM/PM, vous pouvez utiliser le code ci-dessous.

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

Utilisez Column.DefaultCellStyle.Format property ou définissez-le dans le concepteur

37
Denis Palnitsky

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
Jla

Vous pouvez définir le format dans aspx, ajoutez simplement la propriété "DateFormatString" dans votre BoundField.

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

Publié par Microsoft dans Chaînes de format de date et heure standard :

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

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

Cela fait partie de la collection plus étendue de Types de formatage dans .NET de Microsoft.

1
jp2code

J'ai utilisé ces codes J'espère que cela pourrait aider

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