Benutzer mit den meisten Antworten
String "04/23/2012 08:00:00 AM" wieder als DateTime object parsen

Frage
-
Hallo zusammen,
mein Programm läuft auf deutschen und englischen Rechnern. Auf dem englischen gibt es eine InvalidFormatExcption bei dem Versuch diesen String wieder in DateTime zurückzuwandeln.
Auf einem deutschen Rechner gehen die ersten beiden Zeilen. Der Fehler tritt in der vierten Zeile auf.
Dim d As String = "23.04.2012 06:00" Dim dt As DateTime = DateTime.Parse(d) d = "04/23/2012 08:00:00 AM" dt = DateTime.Parse(d)
Nun möchte ich aber keine neue Version nur für Englisch auskehren. Wie kann ich es erreichen, dass beide Zeitformate akzeptiert werden?
Wie kann ich es erreichen, dass auf einem englischen Rechner ein deutsches Programm läuft?
Gruss Ellen
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Donnerstag, 24. Mai 2012 06:07
Antworten
-
Die Parse-Methode erlaubt als zweites Argument ein CultureInfo, so diese Zeichenketten Eingaben eines Benutzers sind, reicht unter Umständen
Dim dt As DateTime = DateTime.Parse(Thread.CurrentThread.CurrentUICulture)
MVP Data Platform Development My blog
- Als Antwort markiert Ellen Ramcke Montag, 23. April 2012 11:24
-
Hallo Martin,
vielen Dank für die Info. Die fehlte. Ich habe das jetzt anders realisiert:
Dim currentCulture As CultureInfo = System.Globalization.CultureInfo.CurrentUICulture Dim cultureDE As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE") Dim cultureEN As CultureInfo = CultureInfo.CreateSpecificCulture("en-US") Dim d As String = "23.04.2012 06:00" Dim dt As DateTime = DateTime.Parse(d, currentCulture) currentCulture = CultureInfo.CreateSpecificCulture("en-US") d = "04/23/2012 08:00:00 PM" dt = DateTime.Parse(d, currentCulture)
Gruss Ellen
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Montag, 23. April 2012 11:25
- Als Antwort markiert Ellen Ramcke Montag, 23. April 2012 11:26
Alle Antworten
-
Die Parse-Methode erlaubt als zweites Argument ein CultureInfo, so diese Zeichenketten Eingaben eines Benutzers sind, reicht unter Umständen
Dim dt As DateTime = DateTime.Parse(Thread.CurrentThread.CurrentUICulture)
MVP Data Platform Development My blog
- Als Antwort markiert Ellen Ramcke Montag, 23. April 2012 11:24
-
Hallo Martin,
vielen Dank für die Info. Die fehlte. Ich habe das jetzt anders realisiert:
Dim currentCulture As CultureInfo = System.Globalization.CultureInfo.CurrentUICulture Dim cultureDE As CultureInfo = CultureInfo.CreateSpecificCulture("de-DE") Dim cultureEN As CultureInfo = CultureInfo.CreateSpecificCulture("en-US") Dim d As String = "23.04.2012 06:00" Dim dt As DateTime = DateTime.Parse(d, currentCulture) currentCulture = CultureInfo.CreateSpecificCulture("en-US") d = "04/23/2012 08:00:00 PM" dt = DateTime.Parse(d, currentCulture)
Gruss Ellen
Ich benutze/ I'm using VB2008 & VB2010
- Bearbeitet Ellen Ramcke Montag, 23. April 2012 11:25
- Als Antwort markiert Ellen Ramcke Montag, 23. April 2012 11:26