2009-01-20 14 views
20

Ich habe diese Funktion ...Führende Null Date Format C#

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 will es mit der führenden Null immer noch auf niedrigere Ziffern (1-9), so ist das Datum 11-09-2009 (mm -dd-yyyy) ...

Wenn ich es jetzt nicht konvertiere, benutze string.Format ("{0: d}", dateVar) wie mache ich das bei der Konvertierung?

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

verwendet, um eine leicht modifizierte Version der Antwort unten (das heißt eine, die machen würde).

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

die dumme Frage stellen zu können, gibt es einen Grund, dass Sie nicht das Parsen und dann als Datumswert zu halten, bis Sie es zurück an den Benutzer präsentieren müssen? –

+1

Es ist ein Deeplink, der die Anforderungen der von uns verwendeten 3rd-Party-Anwendung erfüllt. Dies ist Teil eines größeren Skripts, um es Partnern leichter zu machen, sich anzumelden. Englische Firma, indische Entwickler, US-Datumsformat. Stelle dir das vor. –

Antwort

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

Einverstanden - von http://msdn.microsoft.com/en-us/library/system.datetime.toshortdatestring(VS.85).aspx das ShortDatePattern von EN-US ist "M/d/yyyy", was trimmen wird führende Nullen und verwenden Sie "/" als Trennzeichen nicht "-". –

+0

@Zhaph: Das Datum wird repariert und in der URL übergeben - Trennung ist notwendig. –

+1

Dies funktionierte nicht für meine Zwecke (insgesamt), aber es zu ändern ... Convert.ToDateTime (datDate) .ToString ("MM-dd-yyyy"); hat ein Vergnügen gemacht. Danke –

2

Sie können nicht verwenden die string.Format, nachdem Sie die Konvertierung getan hast?

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

+0

Das ist, was ich geahnt habe, aber 20-03-2009 eingegeben produziert 20.03.2009 –

+0

Ja, weiß nicht, was ich dachte, Mehrdads Antwort ist diejenige, die funktionieren sollte –

Verwandte Themen