2012-07-25 6 views
0

Obtenir abit d'un problème, je ne sais comment utiliser DateTime pour afficher mes résultats comme ceci:DateHeure juste la date?

{ 

      string uri = "http://localhost:8002/Service/HireDate"; 
      XDocument xDoc = XDocument.Load(uri); 
      var staff = xDoc.Descendants("HireDate") 
       .Select(n => new 
       { 
        StartDate = DateTime.Parse(n.Element("HireFromDate").Value), //this line 
        EndDate = DateTime.Parse(n.Element("HireToDate").Value), //this line 
        TotalDaysHired = n.Element("NumberOfDaysHired").Value, 
       }) 
       .ToList(); 

      dataGrid9.ItemsSource = staff; 

    } 

Cependant cette commande affiche comme celui-ci dans mon DataGrid:

15/07/2012 00:00:00 
27/07/2012 00:00:00 

Y at-il un moyen de supprimer le temps je veux juste la date?

+1

Cela ressemble plus à un problème de l'assurance-chômage, à savoir le travail de la grille de données. Alors: quelle grille de données est-ce? winforms? Webforms? wpf? sl? xna? cf? mvc? –

+0

Dans ce cas: [Vous devez mettre en forme les dates dans WPF DataGrid construit dynamiquement] (http://stackoverflow.com/questions/848702/need-to-format-dates-in-dynamically-built-wpf-datagrid) –

Répondre

5

Vous souhaitez afficher uniquement la partie Date d'un DateTime en tant que String? Vous pouvez utiliser DateTime.ToShortDateString() qui est plus lisible:

StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToShortDateString() 
+0

ou utiliser 'StartDate = DateTime.Parse (n.Element (" HireFromDate "). Valeur) .ToString (" jj-MM-aaaa ");' – harry180

3

Pour obtenir la date sans temps comme une chaîne, vous pouvez utiliser ToShortDateString ou custom formatting options fournis à ToString:

var dateString = DateTime.Now.ToString("dd/MM/yyyy"); 
var shortDate = DateTime.Now.ToShortDateString(); 

La culture est considérée à la fois ToShortDateString et ToString avec un format personnalisé (bien que le format est encore votre posséder). ToShortDateString peut être plus précis avec la culture actuelle car il contient le format correct pour une culture donnée.

0

Vous pouvez utiliser la fonction DateTime.ParseExact.

par exemple:

 XDocument xDoc = XDocument.Load(uri); 

     var staff = xDoc.Descendants("HireDate") 
      .Select(n => new 
      { 
       StartDate = DateTime.ParseExact(n.Element("HireFromDate").Value, "dd/MM/yyyy", null), //this line 
       EndDate = DateTime.ParseExact(n.Element("HireToDate").Value, "dd/MM/yyyy", null), //this line 
       TotalDaysHired = n.Element("NumberOfDaysHired").Value, 
      }) 
      .ToList(); 

     dataGrid9.ItemsSource = staff; 
0

lorsque vous mettez le temps de date, vous pouvez utiliser la méthode ToString (format string) pour définir le format approprié.

Vous trouverez ici quelques formats smaple: http://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx

StartDate = DateTime.Parse(n.Element("HireFromDate").Value).ToString("dd/MM/yyyy"), 
EndDate = DateTime.Parse(n.Element("HireToDate").Value).ToString("dd/MM/yyyy") 
0
EndDate = DateTime.Parse(n.Element("HireToDate").Value).ToShortDateString() 
Questions connexes