2017-03-06 3 views
0

Ich bin ein Datum als Parameter übergeben, wo daydate den ParameterEntfernen Zeitformat in einem Datum

string daydate 
ist

Der Inhalt daydate ist 3/3/2017 12:00:00 AM

Ich tue dies, um die Zeit zu entfernen, und das nach wie vor Zeit geht nicht weg

string strCleanDate = String.Format("{0:M/d/yyyy}", daydate); 

Wie kann ich die Zeit entfernen?

+0

https://msdn.microsoft.com/en-us/library/8kb3ddd4.aspx Lesen Sie diesen Kerl. – Juanche

Antwort

0

Das ist, weil das Formatierungsprogramm ignoriert wird, da die Instanz, die Sie an string.Format übergeben, eine Zeichenfolge ist, so dass der Platzhalter mit dem übergebenen Wert gefüllt wird und das Format vollständig ignoriert wird. Wenn Sie die Formatierung DateTime übernehmen möchten, müssen Sie eine Instanz eines DateTime-Typs übergeben.

Ihr erster Fix sollte sein, Ihren Parameter so zu ändern, dass er vom Typ DateTime und nicht string ist. Andernfalls könnte ein Anrufer "HI THERE" passieren und Ihre Methode/Anwendung würde brechen, oder noch schlimmer, diesen Wert in einen Laden schieben und Ihr Laden ist jetzt mit ungültigen Werten belastet.

public void SomeMethod(DateTime daydate) 
{ 
    var dateOnly = dayDate.Date; 
} 
+0

Also sagst du zuerst zu einem Datetime konvertieren? – user2320476

+0

@ user2320476 - Nein, ich sage "String" nicht als Parametertyp, wenn Sie eine 'DateTime' -Instanz erwarten. – Igor

+0

@ user2320476 - dh. Der Aufrufer sollte gezwungen werden, eine Instanz von 'DateTime', nicht String, zu übergeben. – Igor

0

Sie sollten dayDate als DateTime-Wert statt als Zeichenfolge übergeben. Dann wird das Format korrekt funktionieren.