2016-06-14 16 views
0

Dies ist ein String Datum:Parse String Datum zu bestimmten Format

dob = reader.GetValue(7).ToString();` return like "12/2/2012" 

Aber ich möchte konvertieren (bevor es vorbei) in dieses Format "2012212", ich habe

versucht
string newDate = dob.ToString("yyyMMdd") 

Aber ich habe der folgende Fehler:

The best overloaded method match for 'string.ToString(System.IFormatProvider)has some invalid arguments

eine Idee?

+0

Warum rufen 'ToString' auf 'reader.GetValue (7)'? Warum nicht als "DateTime" ausgeben? –

+0

weil 'dob' als String deklariert wurde. –

+0

reader.GetDateTime (7) gibt Ihnen DateTime-Objekt zurück? – DespeiL

Antwort

1

Not Exact way of getting output but it will work.

string dob = "12/2/2012"; 
    string[] d1 = dob.Split('/'); 
    string s = d1[2] + d1[1] + d1[0]; 
+0

ja, danke ... es hat den Trick gemacht –

+0

Ich bin froh, Ihnen zu empfehlen. –

1

könnten Sie SqlDataReader.GetDateTime verwenden, wenn zugrunde liegende Rückgabetyp DateTime

Dann brauchen Sie nur ..

reader.GetDateTime(7).ToString("yyyyMdd"); 

Im Falle, wenn sie gespeichert werden und erhalten als String dann würde ich zu DateTime Umwandlung empfehlen zuerst und dann nach einem bestimmten Format suchen.

var date = DateTime.ParseExact(dob, "dd/M/yyyy",CultureInfo.InvariantCulture); 
    var formattedDate = date.ToString("yyyyMdd"); 
+0

dieser Code zurück "{2/17/1993 12:00:00 AM}" –

+0

@SaifManea welche Codezeile? es sollte '2012212' zurückgeben –

0
DateTime.ParseExact(reader.GetValue(7), "dd/M/dd", System.Globalization.CultureInfo.InvariantCulture).ToString("yyyyMMdd"); 
-1

können Sie unter Methode versuchen Zeichenfolge Datum zu konvertieren.

IFormatProvider culture = new CultureInfo("en-US", true); 
dob = DateTime.ParseExact(reader.GetValue(7).ToString(), "dd/MM/yyyy", culture).ToString("yyyyMMdd"); 

Vielen Dank.

+0

Für das Datumsformat in diesem Fall definieren Sie Kultur? Bist du ernst? – DespeiL

0

Wenn Sie ein Datum in einem String mit dem Format "ttmmjjjj" und wollen es konvertieren "yyyyMMdd" mögen Sie dies tun könnte:

DateTime dt = DateTime.ParseExact(dob, "ddMMyyyy", 
            CultureInfo.InvariantCulture); 
dt.ToString("yyyyMMdd");