2016-08-08 11 views
-3

Ich habe einen Datumswert, den ich die Zeit abziehen möchte. Ich möchte, dass der Rückgabetyp ein Datumstyp ist, da ich die Liste des Datums, das ich habe, bestellen möchte. Wenn Sie eine Liste mit der Zeichenfolge "Datum" angeben, wird keine korrekte Reihenfolge zurückgegeben. Ich weiß, dass DateTime immer das Datum mit der Uhrzeit zurückgibt. Was sind meine Möglichkeiten hier? Wie kann ich meinen Code verbessern und habe eine Liste von Artikeln vom Typ Datum ohne die Zeit?Rücksendedatum ohne Zeit, aber nicht vom Typ String aber Datum

Edit: Ich möchte nur das Datum haben. nichts danach. Etwas wie 8/7/2016 nicht 8/7/2016 00:00:00 oder etwas nach dem Datum. und in einem Datumsobjekt.

Hier ist mein Code:

+0

Duplizieren, bereits beantwortet in http://stackoverflow.com/questions/6121271/how-to-remove-time-portion-of-date-in-c-sharp-in-datetime-object-only – user319785

Antwort

2

Für jedes gegebene DateTime Objekt, Sie its Date property verweisen können die Zeitwerte auf Streifen aus:

var withTime = DateTime.Now; // 8/7/2016 22:11:43 
var withoutTime = withTime.Date; // 8/7/2016 00:00:00 
+0

Aber es zeigt immer noch die Uhrzeit als 00:00:00 an. Ich möchte etwas Linie 8/7/2016 und nichts danach. – Francky

+3

@Francky: Ein 'DateTime'-Objekt selbst zeigt * nichts *. Wie Sie * den Wert in einer UI * anzeigen, ist ein separates Problem. Wenn Sie es ohne Zeitanzeige anzeigen möchten, zeigen Sie es ohne Zeitangabe an. Aber der 'DateTime' Typ hat diese Eigenschaften. Wenn Sie einen Typ ohne diese Eigenschaften wünschen, müssen Sie wahrscheinlich einen eigenen definieren. – David

+0

das Ganze ist in der Lage, es ohne die Zeit anzuzeigen. Ich kann den Zeitteil strippen, aber muss ihn in einen String umwandeln, daher kommen wir zum selben Problem zurück, ein Date zu haben, keine Zeichenkette. Hier geht es vor allem darum, die Liste sortieren zu können. Wenn Sie es in eine Zeichenfolge konvertieren, wird eine falsch sortierte Liste zurückgegeben. – Francky

0

Das .NET-Framework nicht über eine Datum- nur Objekt.

Es kann sich lohnen zu verstehen, wie die Struktur DateTime funktioniert. Intern speichert es einen Offset in Ticks (1 Tick = 100 Nanosekunden) seit 01.01.0001 12:00 Uhr in einer einzelnen 64-Bit-Ganzzahl ohne Vorzeichen. (1 Tick = 100 Nanosekunden)

Die Struktur DateTime bietet dann viele nützliche Methoden und Eigenschaften für die Behandlung von Daten und Uhrzeiten, wie das Hinzufügen einiger Tage zu einem vorhandenen Datum oder die Berechnung der Differenz zweier Zeiten. Eine nützliche Eigenschaft ist Date, die ein DateTime Objekt auf den nächsten Tag (12:00 Uhr) abrundet.

Daten, Zeiten und Daten mit Zeiten sind alle sehr ähnlich, der Hauptunterschied ist, wie Sie sie formatieren, ein Datum-mit-Zeit, wo Sie die Zeit weglassen, ist nur ein Datum.

Was David vorgeschlagen hat, ist, dass Sie mit der DateTime Struktur arbeiten intern, alle Zeiten Streifen der Date Eigenschaft verwenden, sortiert auf dem DateTime, vergleichen sie und modifizieren sie als DateTime Objekte.

Konvertieren Sie sie nur in eine string, wenn sie angezeigt werden müssen. An diesem Punkt können Sie Methoden wie ToShortDateString() oder ToString(string format) verwenden, um nur das Datum anzuzeigen.

Verwandte Themen