35 Stimmen

Führende Nullen Datumsformat C#

Ich habe diese Funktion...

private string dateConvert(string datDate)
{
        System.Globalization.CultureInfo cultEnGb = new System.Globalization.CultureInfo("en-GB");
        System.Globalization.CultureInfo cultEnUs = new System.Globalization.CultureInfo("en-US");

        DateTime dtGb = Convert.ToDateTime(datDate, cultEnGb.DateTimeFormat);
        datDate = dtGb.ToString(cultEnUs.DateTimeFormat.ShortDatePattern);

        return datDate;
}

Aber ich möchte es mit der führenden Null noch auf den unteren Stellen (1-9), sodass das Datum 11-09-2009 (mm-dd-yyyy) ist...

Jetzt, wenn ich es nicht konvertiere, würde ich string.Format("{0:d}", dateVar) verwenden. Wie mache ich das bei der Konvertierung?

***** Lösung *****

Eine leicht modifizierte Version der unten stehenden Antwort verwenden (d.h. eine, die gerendert wird).

Convert.ToDateTime(datDate).ToString("MM-dd-yyyy");

1 Stimmen

Um die dumme Frage zu stellen, gibt es einen Grund, warum du dies nicht analysierst und es dann als Datumswert behältst, bis du es dem Benutzer wieder präsentieren musst?

1 Stimmen

Es dient dazu, einen Deeplink zu erstellen, der den Anforderungen der Drittanbieter-App entspricht, die wir verwenden. Dies ist Teil eines größeren Skripts, um es Partnern zu erleichtern, Links einzufügen. Englische Firma, indische Entwickler, US-Datumsformat. Go Figure.

62voto

mmx Punkte 400975
return dateTimeValue.ToString("MM-dd-yyyy");

translated to

return dateTimeValue.ToString("MM-dd-yyyy");

3 Stimmen

Übereinstimmend - von msdn.microsoft.com/en-us/library/… ist das ShortDatePattern von EN-US "M/d/yyyy", das führende Nullen abschneidet und "/" als Trennzeichen anstelle von "-".

0 Stimmen

@Zhaph: Das Datum wird neu analysiert und in die URL übergeben, daher ist die - Trennung notwendig.

1 Stimmen

Dies hat nicht für meinen Zweck (im Ganzen) funktioniert, aber die Modifikation zu... Convert.ToDateTime(datDate).ToString("MM-dd-yyyy"); hat wunderbar funktioniert. Vielen Dank

3voto

Glenn Slaven Punkte 32691

Können Sie nicht das string.Format verwenden, nachdem Sie die Konvertierung durchgeführt haben?

z.B. return string.Format("{0:d}", datDate);

1 Stimmen

Das habe ich vermutet, aber die Eingabe von 20-03-2009 ergab 3-20-2009.

0 Stimmen

Ja, keine Ahnung, was ich gedacht habe, Mehrdads Antwort ist die, die funktionieren sollte.

0 Stimmen

Warum behalten Sie die Antwort?

3voto

Matt Punkte 312

Ich würde empfehlen, den neuesten C#-Kurzschreibstil (Formatierer) für die Benutzerfreundlichkeit und Lesbarkeit zu verwenden:

return dateTimeValue:MM-dd-yyyy;

Sauber und prägnant.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X