Probleme mit der String->Datum Konvertierung

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von VaporiZed.

    Probleme mit der String->Datum Konvertierung

    Moin!

    ich muss einen String an eine Funktion übergeben, die bei Datumsangaben auch den Datentyp Date haben muss.

    Hier mein Code:

    VB.NET-Quellcode

    1. Dim Datum As DateTime = Now
    2. Dim MyCultureInfo As CultureInfo = New CultureInfo("de-DE")
    3. If DateTime.TryParseExact(Value, "dd.MM.yyyy", MyCultureInfo, DateTimeStyles.None, Datum) Then
    4. updateData.Write(Key, Datum)
    5. Else
    6. updateData.Write(Key, Value)
    7. End If


    ... und das Beispiel.



    Ich verstehe nur nicht warum nicht in das If-Statement abgebogen wird sondern in das ELSE!

    Gruß Jan
    @jan99 Kann ich nicht nachvollziehen.
    @SpaceyX das heutige Datum, siehe ScreenShot.
    ====
    @jan99 Ist da ggf. ein illegales Zeichen im String?
    Beleg mal die Variable von Hand.
    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!
    Klappt bei mir.

    Ggf. ein If Value.Length > 10 Then MessageBox.Show("unsichtbare Zeichen enthalten") - aufgegriffen von RfG.
    Bilder
    • Test.png

      16,88 kB, 809×263, 103 mal angesehen
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    @jan99 Probierma

    VB.NET-Quellcode

    1. If DateTime.TryParseExact(Value.Trim(), "dd.MM.yyyy", MyCultureInfo, DateTimeStyles.None, Datum) Then
    oder sieh Dir mal an, was DateTimeStyles zu bieten hat:
    DateTimeStyles.AllowWhiteSpaces
    docs.microsoft.com/de-de/dotne…les?view=netframework-4.8

    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!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „RodFromGermany“ ()

    Wenn ich die Abfrage richtig verstehe, dann kann da nur ins IF-Statement abgebogen werden, weil es sich ja um ein gültiges Datum handelt.
    Bei mir zweigts immer ins "1" ab.

    VB.NET-Quellcode

    1. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    2. Dim Datum As DateTime = Now()
    3. Dim MyCultureInfo As CultureInfo = New CultureInfo("de-DE")
    4. If DateTime.TryParseExact("05.04.2020", "dd.MM.yyyy", MyCultureInfo, DateTimeStyles.None, Datum) Then
    5. MsgBox("1")
    6. Else
    7. MsgBox("2")
    8. End If
    9. End Sub




    Liebe Grüße
    Roland Berghöfer

    Meine aktuellen und kostenlos verwendbaren Tools (mit VB.NET erstellt): freeremarkabletools.com | priconman.com | SimpleCalendar | AudibleTouch | BOComponent.com | bonit.at

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „dive26“ ()

    @Dksksm: Schau bitte nochmal auf den Screenshot in Post#1. Da wird auch ein String geparst und Datum nur als TryParseExtract-Zielvariable verwendet. Und: Du hast den falschen User angepingt. Nicht Jan, sondern Jan99.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.