2017-02-17 13 views

Antwort

2

Das Problem ist Ihr erwartetes Datumsformat ist dd/MM/yyyy hh:mm tt, aber das Referenzdatum hat nur eine einstellige Stunde 4. Es ist wahrscheinlich besser, führende Nullen für Tage, Monate oder Stunden nicht zu erwarten.

Try ..

var TDXRSC = "25/12/2017 4:00 PM"; 
var input = DateTime.ParseExact(TDXRSC, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture); 

Dies wird auch analysieren noch 2 Ziffer Stunden. Also var TDXRSC = "25/12/2017 12:00 PM"; wird immer noch richtig analysieren.

+0

Ich habe es. Danke, @ Nico. –

+0

@ Ken99 gute Arbeit. Ich schlage vor, verschiedene Szenarien zu versuchen, bei denen die führenden 0 oder einstelligen Werte fehlen. Monate und Tage könnten auch in Zukunft ein Problem verursachen – Nico

0
var TDXRSC = "25/12/2017 4:00 PM"; 
var input = DateTime.ParseExact(TDXRSC, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture); 
var output = input.ToString("MM/dd/yyyy h:mm tt"); 

Wenn Sie anrufen ParseExact Sie sagen dem Compiler, welches Format das Eingangsdatum ist. Sie können dann die Methode ToString() verwenden, um ein Format für eine Zeichenfolgendarstellung des analysierten Datums bereitzustellen.

+0

Haben Sie diesen Code getestet? 'FormatException: String wurde nicht als gültiges DateTime erkannt. – Enigmativity

+0

Beim Aufruf von ParseExact erhalte ich einen Fehler:" String wurde nicht als gültiges Datetime erkannt " –

+0

@Enigmatismus-Code ist in Ordnung, das Eingabeformat könnte inkorrekt sein, aber das Konzept ist Sound – CynePhoba12

0

Hoffnung, dass .TryParseExtract mehr sicher sein wird für die Konvertierung zu verwenden, verwenden Sie wie folgt aus: "Aber es funktioniert nicht"

var dateString = "25/12/2017 4:00 PM"; 
DateTime inputDate; 
if(DateTime.TryParseExact(dateString, "dd/MM/yyyy h:mm tt", CultureInfo.InvariantCulture, DateTimeStyles.None, out inputDate)) 
{ 
    var output = inputDate.ToString("MM/dd/yyyy hh:mm tt"); 
    Console.WriteLine(output); 
} 
else 
{ 
    Console.WriteLine("Conversion failed"); 
} 

Working Example

0
var TDXRSC = "25/12/2017 4:00 PM"; 
DateTime date = Convert.ToDateTime(TDXRSC); 
string Format = date.ToString("MM/dd/yyyy h:mm tt"); 
Verwandte Themen