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 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.
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";
Utiliser Colonne.DefaultCellStyle.Format propriété ou valeur designer
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
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}"
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");
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.