Diese Linie nimmt die Zeichenfolge, 10/13/2016 21:42
und analysiert es das Format zur Verfügung gestellt werden. Dies ist nützlich, wenn eine Datumszeichenfolge in einem zweideutigen Format wie 06/05/2016
ist und obwohl diese entweder 5. Juni th oder 6. Mai th darstellen könnte, aber Sie wissen, dass es Tag ist/Monat, 6. Mai th in meinem Beispiel. Für mehr siehe DateTime.ParseExact.
Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
Das Ergebnis dieses Verfahrens ist eine Datumzeit, kein String.
'result is 10/13/2016 09:42
So das Ergebnis gültig - je nachdem, wie Sie es inspizieren - aber es gibt keine AM/PM
Indikator. Es ist bereits eine DateTime. Weitere Operationen an ETAtime können dies belegen.
Dim ETAtime1 As String = Convert.ToDateTime("10/13/2016 21:42").ToString("MM/dd/yyyy HH:mm")
Dim ETAtime As DateTime = DateTime.ParseExact(ETAtime1, "MM/dd/yyyy HH:mm", Nothing)
Console.WriteLine("{0:MM/dd/yyyy HH:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm}", ETAtime)
Console.WriteLine("{0:MM/dd/yyyy hh:mm tt}", ETAtime)
Ausgabe
10/13/2016 21:42
10/13/2016 09:42
10/13/2016 09:42 PM
Es ist wirklich kein Problem mit Ihrem Code.
Meine IDE (Visual Studio 2012) zeigt das Datum in diesem Format beim Debuggen 10/13/2016 09:42 PM
an. Ich bin in den USA ansässig. Was angezeigt wird, sollte auf Ihren regionalen Einstellungen basieren. Es wäre interessant, einen Screenshot von dir zu sehen.
Warum haben Sie diese als C# markiert, wenn es in VB ist? Beachten Sie, dass in der zweiten Zeile das Ergebnis eine 'DateTime' ist, keine' String' ... eine 'DateTime' hat * kein inhärentes Format. –
Es tut mir so leid, nur ich kann C# Antwort lesen. Ich kann das Tag entfernen. – Bcktr
Grundsätzlich lautet die Antwort: "Sie scheinen zu verwechseln, was passiert, wenn Sie' ToString() 'auf einer' DateTime' mit Daten aufrufen, die sich in der 'DateTime' selbst befinden." –