2016-07-07 1 views
-2

muss ich Datum von Datetime in Linq wie folgt erhalten:get Datum von Datetime in Linq und zeigen gridview

var items = db.Students.ToList().Select(u => new { bi = u.Birthday.Date }); 

aber Artikel im Raster angezeigt werden wie folgt:

enter image description here

I habe andere Fragen gesehen:

Frage1:Linq - Select Date from DateTime

aber wenn ich bearbeiten Code ähnlich

   var items = (from xx in db.Students          
           select new 
           { 
            EntityFunctions.TruncateTime(xx.Birthday) 
           }).ToList(); 

ich im Code einen Fehler bekam !!

Question2:How to get only Date from datetime column using linq

aber akzeptierte Antwort auf diese Frage convert Datum String!

Question3:Linq to Entity get a Date from DateTime

Antworten ähnlich wie Question1.

aspx für Raster anzeigen:

<asp:GridView ID="GridView1" runat="server">    
</asp:GridView> 

Hat jemand eine Idee, dieses Problem zu lösen?

Danke.

+0

woher kommt die DateTime? Ist es eine Zeichenfolge oder ein DateTime-Objekt? – jdweng

+0

Sieht aus wie beim Abrufen des Datums, dass Sie nur den Datumsteil erhalten, aber während der Anzeige formatieren Sie nicht. Bevor Sie Ihr Raster anzeigen, versuchen Sie mit .ToString ("TT/MM/JJJJ") zu formatieren –

+0

Ändern Sie das Formatattribut der Rasterspalte auf was auch immer Sie wollen. Welches Raster verwendest du? Wo ist der ASP.NET-Code, der das Raster generiert? –

Antwort

0

Wie Sie bereits in Ihren anderen Fragen gesagt worden sind; Wenn Sie Ihr Raster zu einem bestimmten Zeitpunkt DateTime.ToString() aufrufen, führt dies zu einem Standardverhalten bei der Anzeige von Datum und Uhrzeit. Die Eigenschaft DateTime.Date gibt einfach den Datumsteil der DateTime als DateTime zurück; Mit anderen Worten, es gibt dasselbe zurück, aber die Zeit ist genau um 12:00 Uhr.

Um nur das Datum als String zu erhalten, wollen Sie DateTime.ToShortDateString nennen, siehe hier: https://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring(v=vs.110).aspx

Kurz gesagt das hat nichts mit Linq zu tun, tritt das Problem auf, wenn Sie versuchen, Ihr Datetime-Objekt angezeigt werden innerhalb Ihr Raster muss als solches durch Anpassen der Formatierung der Rasterzellen gelöst werden.

+0

dafür nicht nötig ist. Die meisten Raster haben Formatattribute für ihre Spalten. Auch wenn sie nicht in der ASPX-Datei oder in der Ansichtsdatei formatiert sind, ist der beste Ort, um den Wert zu formatieren. –

+0

@PanagiotisKanavos Ja, ich werde meine Aussage umschreiben, da dies das war, was ich sagen wollte, aber offensichtlich war ich nicht klar genug. –

+0

Das OP rief 'String.Format' direkt in der LINQ-Anweisung in der vorherigen Frage auf. Es ist nicht möglich, diese Frage in ihrer aktuellen Form richtig zu beantworten. –