2012-07-01 17 views
5

Wenn ich Thesen allgemeine SQL gültige Daten in C# Saiten:Konvertieren Sie das allgemeine SQL-Zeitformat in C# (alle Varianten)?

(jedes Datum in einer anderen Reihenfolge innerhalb sein kann), z.B. :

01 feb 2010 
feb 01 2010 
2010 01 feb 
... 
... 

Ich möchte einen String Datum DateTime (C#) konvertieren. (Ich will die Fähigkeit, jedes Format von der oben genannten Liste zu konvertieren)

während Pars genau erfordert 3! Kombinationen, gibt es eine bessere Lösung?

+1

3! ist nur 6 ... Allerdings könnten Sie einfach auf Leerzeichen aufteilen, und herausfinden, ob jedes Stück Alphas, 4 Ziffern oder 2 Ziffern ist ... BTW - wie bezieht sich das auf SQL? –

+0

yeah ich weiß, das ist was ive strted zu tun ... aber wieder bevor ich weiter, nur überprüfen, ob andere Lösung –

+0

4 Ziffern für das Jahr, 3 Zeichen für Monate, 2 Ziffern für den Tag. Sie könnten eine Regex mit übereinstimmenden Gruppen verwenden und eine einzelne Analyse genau durchführen. –

Antwort

2

Ich glaube, ich habe es ... enter image description here

string[] str = new[] { "01 feb 2010","feb 01 2010","2010 01 feb","2010 feb 01","feb 2010 01" }; 
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("en-US"); 
CultureInfo culture = CultureInfo.CreateSpecificCulture("en-US");      
for (int i = 0; i < str.Length; i++) 
{ 
    DateTime t = DateTime.Parse(str[i], culture); 
    t.Dump(); 
} 
+1

Keine Notwendigkeit, die 'CurrentThread.CurrentCulture' zu ​​setzen (zu verschmutzen). 'Parse (..., culture)' sollte ausreichen. –

+0

@HenkHolterman yep ... obwohl wenn ich es anzeigen ändert die Reihenfolge (mein Computer ist um TT/MM/JJJJ), so zeigt es mir: 01/02/2010 .... aber nur für die Anzeige (was irrelevant ist) –

+0

Was macht 'Dump()'? – abatishchev

Verwandte Themen