2016-04-05 10 views
0

Ich konvertiere eine Zeichenfolge in DateTime, damit ich Jahr, Monat und Tag trennen kann. Die Trennung der Zeichenfolge funktioniert, aber value.Month und value.Day entfernt die Nullen aus dem Monat und Tag. Die Zeichenfolge könnte also 04/05/2016 sein und wird zum 4. Mai 2016 konvertiert.So stoppen Sie das Datum beim Entfernen von Nullen

Wie kann ich verhindern, dass die Nullen entfernt werden?

string date = txtFromDate.Text; 
int year = 0; 
int month = 0; 
int day = 0; 
DateTime value; 
if (DateTime.TryParse(date, out value)) 
{ 
    year = value.Year; 
    month = value.Month; 
    day = value.Day; 
} 

Ich möchte das Datum im selben Format behalten.

+6

Die 'DateTime.TryParse' alles tun, nicht mit dem Format ... Bitte überprüfen Sie Ihre Display-Format (wie zB Ihre' ToString() ') – Ian

+0

@Ian du hast recht, Ich habe meine Frage aktualisiert – user123456789

+0

Wo möchten Sie die Daten behalten? – Win

Antwort

2

DateTime Objekt nicht eine Information über das Format, das auf seine Daten angewendet werden kann; es repräsentiert nur ein Datum.

können Sie extrahieren wieder eine Zeichenfolge, die die benötigte Format:

value.Tostring("M/d/yyyy") //returns "6/15/2008" 
value.Tostring("MM/dd/yyyy") //returns "06/15/2008" 
value.Tostring("dd") //returns "15" 

Wie auch immer, in Ihrem Codebeispiel, sind Sie year, month und day in int Variablen zu speichern.
Int hat auch keine Informationen über das Format, das auf seine Daten angewendet werden kann; es repräsentiert nur eine Zahl.

day.ToString("00")); // returns "15" 
3

Ganzzahlen haben keine führenden Nullen. value.Day gibt eine int 5 anstelle der Zeichenfolge "05" zurück, da das Datum erfolgreich zu einer Integer-Darstellung analysiert wurde.

Wenn Sie eine ganze Zahl zurück in einen String mit einem angegeben Anzahl von Nullen konvertieren möchten, einen Formatbezeichner verwenden, wenn Sie die Zeichenfolge zu drucken, wie folgt aus:

Console.WriteLine(day.ToString("00")); // prints 5 as 05 
2

Basierend auf meinem Verständnis Ihrer Frage, müssen Sie nur das Datum formatieren.

DateTime value; 
string result = ""; 
if (DateTime.TryParse(txtFromDate.Text, out value)) 
{ 
    result = String.Format("{0:MM/dd/yyyy}", value); 
} 
Verwandte Themen