Englisches Datumsformat

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Kraizy.

    Englisches Datumsformat

    Hallo,

    ich lese aus einer Seite ein Datum aus und will nun die Differenz zwischen diesem und dem heutigen Datum berechnen. Das Datum, welches ich aus der Seite auslese sieht z.B. folgendermaßen aus: 06-27-2012, 14:32
    Wenn ich nun folgendes anwende:

    VB.NET-Quellcode

    1. Dim d As Date = CDate(Now.ToString("dd.MM.yyyy, HH:mm"))
    2. MsgBox(d)

    Dann wird mir zwar 26.09.2012, 18:37:00 angezeigt, jedoch hat dies ein falsches Format gegenüber des Datums der Internetseite.
    Wenn ich es jedoch so mache:

    VB.NET-Quellcode

    1. Dim d As Date = CDate(Now.ToString("MM-dd-yyyy, HH:mm"))
    2. 'oder
    3. Dim d As Date = CDate(Now.ToString("MM.dd.yyyy, HH:mm"))

    Dann bekomm ich eine Exception.
    Ich kann es zwar als String benutzen:

    VB.NET-Quellcode

    1. Dim d As String = Now.ToString("MM-dd-yyyy, HH:mm")

    Dann wird mir zwar die exakte Form angezeigt, wie auch auf der Seite, jedoch kann ich ja schlecht mit Strings rechnen, um die Differenz zu bekommen.
    Wie müsste ich das denn nun richtig machen?
    Probier mal so etwas:

    VB.NET-Quellcode

    1. Dim ci As New System.Globalization.CultureInfo("EN-us")
    2. MessageBox.Show(DateTime.Now.ToString(ci))
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nimm Date.TryParseExact anstatt CDate, wenn Du das Format genau kennst.
    Beispiel:

    VB.NET-Quellcode

    1. Dim datum As Date
    2. Dim format = "MM/dd/yyyy HH:mm"
    3. Dim input = (Now.AddDays(1)).ToString(format)
    4. Debug.Print("Input: " & input.ToString)
    5. If Date.TryParseExact(input, format, Nothing, Globalization.DateTimeStyles.None, datum) Then
    6. Debug.Print("Parse - OK: " & datum.ToString)
    7. Else
    8. Debug.Print("Parse - Error!")
    9. End If

    xtts02 schrieb:


    Debug.Print("Parse - OK: " & datum.ToString)


    Und wie soll ich dann mit Strings die Differenz zwischen beiden Daten ausrechnen?
    Also ich hab nun Dim siteDate As String = "06-27-2012, 14:32"
    Da kann ich doch nicht Date mit String vergleichen und damit rechnen?